Re: Вопросы по С/С++ (СИ)
Добавлено: Вс июн 10, 2012 21:00:13
... для "хитрых" данных лучше ИМХО использовать структурыuk8amk писал(а):Возможно ли как-то организовать массив указателей на строки во FLASH и как это правильно сделать?
... для "хитрых" данных лучше ИМХО использовать структурыuk8amk писал(а):Возможно ли как-то организовать массив указателей на строки во FLASH и как это правильно сделать?
Код: Выделить всё
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 };Код: Выделить всё
flash char str_ok[]="OK";Код: Выделить всё
Запись
PROGMEM unsigned char Num_codes[10]="OK";
//чтение
display[1]=pgm_read_byte_near(&Num_codes[res]);//тут RES это любое число в пределах размера массива.
//либо через указатель вместо &Num_codes[res]
Код: Выделить всё
movlw 1<<SPI2X
iorwf SPSR, fатмега48, этот код не работает. unknown command. работаю в avr studio 4uldemir писал(а):Про какой микроконтроллер, вообще-то, речь шла?Код: Выделить всё
movlw 1<<SPI2X iorwf SPSR, f
... любой С-компилятор может создавать файл листинга и *.asm файл. Можно например такgyparr писал(а):помогите конвертнуть код из си в асм: SPSR | = (1<<SPI2X);
Код: Выделить всё
in r16,SPSR
ori r16,(1<<SPI2X)
out SPSR,r16Ну еще бы!gyparr писал(а): этот код не работает. unknown command.
Я не нашел такой штуки в авр студии, в кодевижн видел, но на данный момент квавр нету.. Если подскажите как создать этот файлик, буду очень благодарен!ChipKiller писал(а):... любой С-компилятор может создавать файл листинга и *.asm файл. Можно например такgyparr писал(а):помогите конвертнуть код из си в асм: SPSR | = (1<<SPI2X);вместо r16 можно использовать r17..r31Код: Выделить всё
in r16,SPSR ori r16,(1<<SPI2X) out SPSR,r16
... не пользуюсь ни AVRStudio, ни WinAVR. Cмотрите справку по ключам компиляции ( .. или гуглите фразу "генерация листинга в WinAVR")gyparr писал(а):подскажите как создать этот файлик
Вот так: А насколько благодарен?gyparr писал(а): Я не нашел такой штуки в авр студии, в кодевижн видел, но на данный момент квавр нету.. Если подскажите как создать этот файлик, буду очень благодарен!
Код: Выделить всё
if ((PINC&0b00000001) == 0xff){ start = 1;}Код: Выделить всё
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;} // единицаКод: Выделить всё
if(PINC.0==0)...Код: Выделить всё
if(PINC.0==1)...Чего-то не могу догнать, как оно будет работать?hybroid писал(а):Код: Выделить всё
if ((PINC&0b00000001) != 0xff){ start = 1;} // единица
Код: Выделить всё
if((PINC&(1<<PC0)) == 0x01){a=1;}