... для "хитрых" данных лучше ИМХО использовать структурыuk8amk писал(а):Возможно ли как-то организовать массив указателей на строки во FLASH и как это правильно сделать?
Вопросы по С/С++ (СИ)
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: Вопросы по С/С++ (СИ)
-
uk8amk
- Поставщик валерьянки для Кота
- Сообщения: 2222
- Зарегистрирован: Вт ноя 27, 2007 11:32:06
- Откуда: Tashkent
Re: Вопросы по С/С++ (СИ)
ChipKiller,
Да, пожалуй вы правы. Переделаю код под массив структур.
Вбил в CVAVR(т.к. первым под руку попался) такой код:
Компилятор вроде проглатил и не поругался. Попробую теперь перетащить на кейл.
Да, пожалуй вы правы. Переделаю код под массив структур.
Вбил в CVAVR(т.к. первым под руку попался) такой код:
Код: Выделить всё
const char str_ok[] = "OK";
const char str_err[] = "ERROR";
const char str_nocarr[] = "NOCARRIER";
const char str_busy[] = "BUSY";
const char str_connect[]="CONNECT";
const char str_ring[]="RING";
const char str_ndialtone[] = "NODIALTONE";
const char str_nanswer[] = "NOANSWER";
const char str_start[]="^SYSSTART";
const char* at_cmd_pattern[ 9 ] = { str_ok, str_err, str_nocarr, \
str_busy, str_connect, str_ring, \
str_ndialtone, str_nanswer,str_start };Компилятор вроде проглатил и не поругался. Попробую теперь перетащить на кейл.
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
Эти строки будут в оперативной памяти место отъедать, Нужно прописать что это именно флеш константа
для CV
Для студии и winavr
В кейл не знаю, столько комиляторов развелось...
для CV
Код: Выделить всё
flash char str_ok[]="OK";Для студии и winavr
Код: Выделить всё
Запись
PROGMEM unsigned char Num_codes[10]="OK";
//чтение
display[1]=pgm_read_byte_near(&Num_codes[res]);//тут RES это любое число в пределах размера массива.
//либо через указатель вместо &Num_codes[res]
В кейл не знаю, столько комиляторов развелось...
В поисках истины человек развивается.
Re: Вопросы по С/С++ (СИ)
помогите конвертнуть код из си в асм:
SPSR | = (1<<SPI2X);
SPSR | = (1<<SPI2X);
Re: Вопросы по С/С++ (СИ)
Код: Выделить всё
movlw 1<<SPI2X
iorwf SPSR, fА люди посмотрят и скажут: "Собаки летят. Вот и осень."
Re: Вопросы по С/С++ (СИ)
uldemir писал(а):Про какой микроконтроллер, вообще-то, речь шла?Код: Выделить всё
movlw 1<<SPI2X
iorwf SPSR, f
атмега48, этот код не работает. unknown command. работаю в avr studio 4
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: Вопросы по С/С++ (СИ)
... любой С-компилятор может создавать файл листинга и *.asm файл. Можно например такgyparr писал(а):помогите конвертнуть код из си в асм: SPSR | = (1<<SPI2X);
Код: Выделить всё
in r16,SPSR
ori r16,(1<<SPI2X)
out SPSR,r16Re: Вопросы по С/С++ (СИ)
Ну еще бы!gyparr писал(а): этот код не работает. unknown command.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Re: Вопросы по С/С++ (СИ)
ChipKiller писал(а):... любой С-компилятор может создавать файл листинга и *.asm файл. Можно например такgyparr писал(а):помогите конвертнуть код из си в асм: SPSR | = (1<<SPI2X);вместо r16 можно использовать r17..r31Код: Выделить всё
in r16,SPSR
ori r16,(1<<SPI2X)
out SPSR,r16
Я не нашел такой штуки в авр студии, в кодевижн видел, но на данный момент квавр нету.. Если подскажите как создать этот файлик, буду очень благодарен!
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: Вопросы по С/С++ (СИ)
... не пользуюсь ни AVRStudio, ни WinAVR. Cмотрите справку по ключам компиляции ( .. или гуглите фразу "генерация листинга в WinAVR")gyparr писал(а):подскажите как создать этот файлик
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
gyparr писал(а):Я не нашел такой штуки в авр студии, в кодевижн видел, но на данный момент квавр нету.. Если подскажите как создать этот файлик, буду очень благодарен!
Вот так:
А насколько благодарен?
$$$$$
$$$$$$В поисках истины человек развивается.
Re: Вопросы по С/С++ (СИ)
Добрый вечер... Подскажите пожалуйста, правильно ли производится опрос PC0 у Atmega8?
У меня ато работает только если ставлю 0х00, а мне надо опознавать высокий, а не низкий уровень.....
Код: Выделить всё
if ((PINC&0b00000001) == 0xff){ start = 1;}У меня ато работает только если ставлю 0х00, а мне надо опознавать высокий, а не низкий уровень.....
Re: Вопросы по С/С++ (СИ)
Код: Выделить всё
if ((PINC&0b00000001) == 0x00){ start = 0; } // ноль
if ((PINC&0b00000001) != 0xff){ start = 1;} // единица
if ((PINC&0b00000001) == 0x01){ start = 1;} // единица
if ((PINC&0b00000001) == 0b00000001){ start = 1;} // единица
if ((PINC&0b00000001) == 1){ start = 1;} // единицаТут посмотрите на побитовое И.
http://ru.wikipedia.org/wiki/%D0%91%D0% ... 0%B8%D0%B8
Re: Вопросы по С/С++ (СИ)
Спасибо огромное)) Дошло наконец-то. Никак от градуировки не отойду 
- Gudd-Head
- Друг Кота
- Сообщения: 20091
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Вопросы по С/С++ (СИ)
А просто написать нельзя?
Код: Выделить всё
if(PINC.0==0)...[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: Вопросы по С/С++ (СИ)
Слишком просто
и ему там нужна была единица. Т.е. просто будет так:
Ну и это же фишка CV, поэтому с точки зрения переносимости между компиляторами...... (тут много букв и демагогии).
Код: Выделить всё
if(PINC.0==1)...Ну и это же фишка CV, поэтому с точки зрения переносимости между компиляторами...... (тут много букв и демагогии).
- DX168B
- Друг Кота
- Сообщения: 4468
- Зарегистрирован: Вс янв 24, 2010 19:19:52
- Откуда: Главный Улей России (Moscow)
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
hybroid писал(а):Код: Выделить всё
if ((PINC&0b00000001) != 0xff){ start = 1;} // единица
Чего-то не могу догнать, как оно будет работать?
Ведь 0xFF != 0x01 && 0xFF != 0x00
I am DX168B and this is my favourite forum on internet!
Re: Вопросы по С/С++ (СИ)
Хм. Не будет оно работать.
Изначально в голове else if крутился после первого if'а, вот и получилось то, что получилось.
- DX168B
- Друг Кота
- Сообщения: 4468
- Зарегистрирован: Вс янв 24, 2010 19:19:52
- Откуда: Главный Улей России (Moscow)
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
I am DX168B and this is my favourite forum on internet!
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Вопросы по С/С++ (СИ)
Будет, но только если PC0 = 0.