Отличия в коде
Написал makakasirapuka дата Чт., 03/10/2011 - 22:57
компилятор (CrossPack) выдал ошибку
поменял код на
все получилось. я правильно понял что это одно и то же?
поменял на
вроде бы скушало. это одно и то же?
- переделал на
пришлось переделывать на
- ошибки ушли.
зато появились такие:
и здесь уже что делать - я не знаю.
но по предыдущим вопросам - хотелось бы понять, эквивалентные ли это конструкции.
нашел в интернетах код для avrstudio
interrupt [TIM0_OVF] void timer0_ovf_isr(void) { TCNT0=0x0F; }
компилятор (CrossPack) выдал ошибку
error: `TIM0_OVF' undeclared here (not in a function)
поменял код на
ISR (TIMER0_OVF_vect) { TCNT0=0x0F; }
все получилось. я правильно понял что это одно и то же?
Еще ругался на код:
PORTD.5=0;
(error: syntax error before numeric constant)
поменял на
PORTD=(0<<5);
вроде бы скушало. это одно и то же?
всякие warnings - это как я понял не страшно и не шибко важно.
еще ругался на конструкции
#asm ... #end asm
- переделал на
asm("");
с прерываниями вместо
asm("cli");
cli();
зато появились такие:
/var/folders/OQ/OQQ-7MUBGRSsK-owpagsPk+++TI/-Tmp-//ccfnxM6C.s: Assembler messages: /var/folders/OQ/OQQ-7MUBGRSsK-owpagsPk+++TI/-Tmp-//ccfnxM6C.s:11: Error: expected comma after "__w1_port" /var/folders/OQ/OQQ-7MUBGRSsK-owpagsPk+++TI/-Tmp-//ccfnxM6C.s:12: Error: expected comma after "__w1_bit" make: *** [main.o] Error 1
и здесь уже что делать - я не знаю.
но по предыдущим вопросам - хотелось бы понять, эквивалентные ли это конструкции.
»
Это и есть то различие в
Это и есть то различие в синтаксисе для компиляторов winavr и CVAVR, про которые я рассказывал здесь: http://avrlab.com/node/17
Конструкции приведенные выше аналогичны между собой.
На варнинги смотреть стоит, так как они не зря вылазят. Но в большинстве случаев народ на них забивает.
Варнинги вконце требуют запятую, где и как - нужно смотреть код.
с запятой разобрался - в моей
с запятой разобрался - в моей IDE (если так можно выразиться) отсутствовала готовая библиотека 1wire (которая есть в CVAVR и где-то еще) - в инете нужного файла не нашел - забил пока на 1wire. попробую чуть позже разобрать с проектом с этого сайта - в конце концов, разница между выводом на ЖКИ и на семисегментные приборы не такая уж большая, да и код вроде бы у вас понятнее, логичнее и грамотнее.
По компилятору советую
По компилятору советую придерживаться одного, а то будешь путаться потом.
warnings - надо смотреть! Привожу пример:
я для типа данных int когда-то пытался задать значение 50 000, мне писало предупреждение но я не читал.
И соответственно программа работала криво пока не прочитал и не исправил.
Я всегда читаю что пишет компилятор, так как можно важные замечания пропустить и потратить впустую много времени при отлавливании багов.
Так же обязательно к прочтению Краткое Руководство по языку Си для микроконтроллеров
стараюсь так и действовать
стараюсь так и действовать :-)