Програмный шим неработает подскажите как организовать
Написал dnhftm дата Суб, 02/25/2012 - 21:49
код в cvavr
итак делаю програмный шим тк с таймерами и апаратным шим работать ещё не научился но все ещё впереди
поглядел примеры в интернете и воспользовавшись логикой написал такой код
void pwm (void) { PORTC.0==0; delay_ms(250); PORTC.0==1; delay_ms(250); };
код конечно как всегда не работает и cv авр предупреждает что delay_ms(250); сюда некатит
идею я взял отсюда https://avrlab.com/node/60
управление 4 обмотками к счатью обмоток у меня только 1 = )
фрагмент кода который я хотел использовать ниже
авр студио 5 съедает его на раз а вот свавр ругается
подскажите как организовать временную задержку для портов для СВАВР
может воспользоваться таймером ? я уверен что вариантов не 1 но я к сожалению не знаю ни одного
void delay(int t) { for (x=0; x<t ;x++) nop (); } //Функция длинной задержки void long_delay(int p) { for (j=0; j<p; j++) { delay(300); } } //Функция поворота ротора вправо void right (void) { PORTD = 0b10001000;//обмотка A long_delay(m); PORTD = 0b01000100;//обмотка B long_delay(m); PORTD = 0b00100010;//обмотка C long_delay(m); PORTD = 0b00010001;//обмотка D long_delay(m); }
»
Добавь строку: #define nop()
Добавь строку:
хорошее предложение но CVAVR
хорошее предложение но CVAVR ругаеться
#define nop() {asm("nop");} - это катит
потом я пишу nop(); ругается гад
Error: ppc.c(160): undefined symbol 'asm'
#define nop() __asm__
#define nop() __asm__ __volatile__("nop")
А так?
пробовал команду в авр студио
пробовал команду в авр студио 5 проблем нет
#define nop() __asm__ __volatile__("nop")
СВАВР ругается когда я в коде указываю nop();
пишет такую фигню
Error: V2.c(179): undefined symbol '__asm__'
Значит AVR Studio тебе в
Значит AVR Studio тебе в помощь!
Спасибо я добил долго парился
Спасибо
я добил долго парился и получилось
#define nop #asm ("nop")
код код код
if (a>0){a+b;
nop;}
работает
спасибо за помощь