Например TDA7294

Форум РадиоКот • Просмотр темы - Нескольно простых вопросов о программировании AVR на Си.
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пн авг 18, 2025 02:31:36

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 1478 ]     ... , , , 12, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн сен 21, 2015 14:11:14 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2117
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18404
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
потрудитесь объяснить, как именно не работает. что вы ожидаете получить и что получаете на самом деле?

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн сен 21, 2015 14:16:31 
Мучитель микросхем

Карма: 3
Рейтинг сообщений: 44
Зарегистрирован: Вс авг 30, 2015 03:52:59
Сообщений: 469
Рейтинг сообщения: 0
dm211 писал(а):
Почему у меня не работает это?- :dont_know:
Код:
flash int x[4]={100,150,200,250};

k=sizeof (x);



А компилятор какой? :)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн сен 21, 2015 15:47:46 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4884
Откуда: Минск
Рейтинг сообщения: 0
Судя по flash, похоже на CodeVision.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн сен 21, 2015 20:50:09 
Прорезались зубы

Карма: 5
Рейтинг сообщений: 7
Зарегистрирован: Вс дек 10, 2006 19:26:13
Сообщений: 206
Рейтинг сообщения: 0
Да, CV, и не могу получить количество цифр или символов массива.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн сен 21, 2015 20:52:29 
Прорезались зубы

Карма: 5
Рейтинг сообщений: 7
Зарегистрирован: Вс дек 10, 2006 19:26:13
Сообщений: 206
Рейтинг сообщения: 0
ARV писал(а):
потрудитесь объяснить, как именно не работает. что вы ожидаете получить и что получаете на самом деле?

Я хочу получить 4, а получаю-0


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн сен 21, 2015 21:01:16 
Потрогал лапой паяльник
Аватар пользователя

Карма: 20
Рейтинг сообщений: 121
Зарегистрирован: Вс янв 19, 2014 22:41:55
Сообщений: 353
Рейтинг сообщения: 3
dm211 писал(а):
... не могу получить количество цифр или символов массива.

sizeof показывает размер объекта в байтах - т.е. в вашем случае размер массива будет равен sizeof(int) * 4.

Для получения размера в "попугаях" классика рекомендует так:

sizeof(x) / sizeof(x[0])

либо вариант для эстетов:

sizeof(x) / sizeof(*x)

Сермяжные практики, пошуршав по системным™ хидерам, находят тот или иной вариант countof, но чаще не найдя оного определяют его локально примерно так:

#define countof(__a) (sizeof(__a) / sizeof(*(__a)))

т.е. применительно для вашего случая использование будет выглядеть так:

k = countof(x);

_________________
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! ;-)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн сен 21, 2015 21:12:00 
Друг Кота
Аватар пользователя

Карма: 45
Рейтинг сообщений: 623
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Сообщений: 8007
Откуда: Лукалэнд
Рейтинг сообщения: 0
Для эстетов более годный. :)))
Вот только вряд ли это ему поможет, судя по flash.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн сен 21, 2015 21:25:05 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4884
Откуда: Минск
Рейтинг сообщения: 0
Да, есть мнение, что flash в CodeVision "портит" sizeof.

Интересно было бы узнать у автора вопроса, что происходит, если это не flash, а обычный массив. Там работает?

В avr-gcc, кстати, такое у меня вполне корректно отрабатывает:
Код:
static const uint8_t alarmSym[] PROGMEM = {
  /* Empty rectangle */
  0b11111,
  0b00000,
  0b00000,
  // ... много других байтов (кстати, зачем у автора вопроса там int в аналогичном случае?)
  0b00000,
};

for (i = 0; i < sizeof(alarmSym); i++)
  ks0066WriteData(pgm_read_byte(&alarmSym[i]));

Здесь PROGMEM не непонятно что, а вполне обычный макрос (pgmspace.h):
#define PROGMEM __ATTR_PROGMEM__,
в свою очередь
#define __ATTR_PROGMEM__ __attribute__((__progmem__))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Пн сен 21, 2015 23:13:16 
Друг Кота
Аватар пользователя

Карма: 45
Рейтинг сообщений: 623
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Сообщений: 8007
Откуда: Лукалэнд
Рейтинг сообщения: 1
Недавно британские учёные доказали, что CV портит ДНК людей. После длительного воздействия CV на человека - его можно не спасти, он становится дельфином.
Единственный выход - быстрейшее избавление от патогена.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Вт сен 22, 2015 05:17:33 
Прорезались зубы

Карма: 5
Рейтинг сообщений: 7
Зарегистрирован: Вс дек 10, 2006 19:26:13
Сообщений: 206
Рейтинг сообщения: 0
без flash тоже не работает-пробовал. Почему int ?-потому что там цифры :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Вт сен 22, 2015 05:25:45 
Потрогал лапой паяльник
Аватар пользователя

Карма: 1
Рейтинг сообщений: 14
Зарегистрирован: Сб сен 19, 2009 07:02:19
Сообщений: 378
Рейтинг сообщения: 0
Siarzhuk писал(а):
sizeof показывает размер объекта в байтах - т.е. в вашем случае размер массива будет равен sizeof(int) * 4....
Cогласно "классике" sizeof x и sizeof( x ) - это разные вещи. sizeof( x ) для массива вернёт размер указателя, чем массив собственно и является, а sizeof x - уже размер массива 'x' в байтах, да и то, если это было определено на этапе компиляции. :) Как Вы написали, было-бы раньше. Сейчас, наверное, все компиляторы по новым стандартам уже пишут. С некоторых пор, стандарт Си сильно поменяли, как там теперь стало, читать надо. По крайней мере появился запрет на арифметику с указателями. Всё ради хомячков. Глядишь, и тип данных 'массив' введут. :) Лично я в данном случае вообще не вижу смысла в sizeof.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Вт сен 22, 2015 06:25:29 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4884
Откуда: Минск
Рейтинг сообщения: 0
dm211 писал(а):
Почему int ?-потому что там цифры :)
Все они меньше 256, поэтому можно было бы unsigned char обойтись.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Вт сен 22, 2015 06:42:40 
Прорезались зубы

Карма: 5
Рейтинг сообщений: 7
Зарегистрирован: Вс дек 10, 2006 19:26:13
Сообщений: 206
Рейтинг сообщения: 0
WiseLord писал(а):
dm211 писал(а):
Почему int ?-потому что там цифры :)
Все они меньше 256, поэтому можно было бы unsigned char обойтись.

С unsigned char работает :shock: :beer:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Вт сен 22, 2015 06:56:02 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2117
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18404
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
shindax писал(а):
Cогласно "классике" sizeof x и sizeof( x ) - это разные вещи. sizeof( x ) для массива вернёт размер указателя, чем массив собственно и является, а sizeof x - уже размер массива 'x' в байтах, да и то, если это было определено на этапе компиляции. :)

будьте любезны ссылочку на эту классику - хотелось бы приобщиться к знаниям.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Вт сен 22, 2015 07:40:45 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4884
Откуда: Минск
Рейтинг сообщения: 0
dm211 писал(а):
С unsigned char работает :shock: :beer:
CodeVision такой CodeVision...

2 shindax: вот, почитайте, одни из первых гуглящихся результатов по sizeof.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Вт сен 22, 2015 08:34:02 
Потрогал лапой паяльник
Аватар пользователя

Карма: 20
Рейтинг сообщений: 121
Зарегистрирован: Вс янв 19, 2014 22:41:55
Сообщений: 353
Рейтинг сообщения: 0
shindax писал(а):
С некоторых пор, стандарт Си сильно поменяли, как там теперь стало, читать надо. По крайней мере появился запрет на арифметику с указателями.

Как так запретили? :shock: Без малого половину функционала языка в печь? [мечтательно] Вот бы Бьярну такую смелость во времена былинные. ;-)

_________________
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR! ;-)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Вт сен 22, 2015 19:22:40 
Мучитель микросхем

Карма: 3
Рейтинг сообщений: 44
Зарегистрирован: Вс авг 30, 2015 03:52:59
Сообщений: 469
Рейтинг сообщения: 0
dm211 писал(а):
Да, CV, и не могу получить количество цифр или символов массива.

Однажды читал на одном из форумов, что CV не умеет sizeof. Проверял примеры, иллюстрирующие его "работу", на своем экземпляре - действительно не работает. Правда, не во всех версиях.

P.S. Только не подумайте, что я им пользовался - содержал исключительно ради помощи страждущим.

P.P.S.
Rtmip писал(а):
А еще более подробно можете написать, чтобы не читать по 100 страниц форума военного?
Я про то, какие еще "не все его недостатки"(CVAVR) и в чем именно не реализует стандарт?
Rtmip, Вы еще здесь? Как Вам эта прэлесть с sizeof'ом? :)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Чт сен 24, 2015 05:46:36 
Вымогатель припоя
Аватар пользователя

Карма: 7
Рейтинг сообщений: 58
Зарегистрирован: Чт янв 20, 2011 09:07:08
Сообщений: 674
Откуда: Пермь
Рейтинг сообщения: 0
Подскажите пожалуйста.
При объявлении в cpp-шном проекте в Atmel Studio 6.2
Код:
#define FIFO( size )\
struct {\
   unsigned char buf[size];\
   unsigned char tail;\
   unsigned char head;\
}

FIFO(128) fifo;

получаю warning:
Код:
anonymous type with no linkage used to declare variable '<anonymous struct> fifo' with linkage [enabled by default]   

В чём ошибка?

_________________
Никакая контра не уйдёт от нас


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Чт сен 24, 2015 06:07:37 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4884
Откуда: Минск
Рейтинг сообщения: 1
Анонимная структура. Попробуйте дать ей какое-нибудь имя - поменять на struct fifo_t {, а дальше как есть.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
СообщениеДобавлено: Чт сен 24, 2015 06:23:09 
Вымогатель припоя
Аватар пользователя

Карма: 7
Рейтинг сообщений: 58
Зарегистрирован: Чт янв 20, 2011 09:07:08
Сообщений: 674
Откуда: Пермь
Рейтинг сообщения: 0
Большое спасибо, warning пропал :)

_________________
Никакая контра не уйдёт от нас


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 1478 ]     ... , , , 12, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 397


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y