Сб сен 22, 2012 11:33:02
Сб сен 22, 2012 12:01:04
Сб сен 22, 2012 12:38:56
avreal писал(а):А counter, небось, в прерывании меняется.
Сб сен 22, 2012 13:21:39
avreal писал(а):А counter, небось, в прерывании меняется.
Тогда читать AVR-LIBC FAQ #1
Сб сен 22, 2012 13:31:09
Сб сен 22, 2012 13:46:09
Сб сен 22, 2012 18:59:04
ibiza11 писал(а):Ваша переменная counter должна быть объявлена глобальной и volatile.
Сейчас она у Вас объявлена в функции delay и поэтому считается компилятором локальной. Ее нужно объявить до начала всех функций.
Сб сен 22, 2012 19:09:04
Сб сен 22, 2012 19:15:45
vt1980 писал(а):Я же говорю что с counter всё в порядке
Сб сен 22, 2012 19:19:42
volatile unsigned int counter;
void main(void){
//some code here
while(1){
//some code here
}
}
void delay(unsigned int Pause_ms){
counter = 0;
while(counter < Pause_ms);
}
void Timer_ISR(void){ // обработчик прерывания, не знаю как точно
counter++;
}
Сб сен 22, 2012 19:22:32
Сб сен 22, 2012 20:10:47
Вс сен 23, 2012 15:34:47
void delay(int ms)
{
volatile int c;
for (int a=0; a<ms; a++)
{
for(int b=0; b<468; b++)
{
c++;
}
}
}
Вс сен 23, 2012 15:43:29
Вс сен 23, 2012 15:43:52
DruidCat писал(а):PS: У меня вопрос к создателю темы, а почему вы упомянули GCC если пользуетесь студией?
DruidCat писал(а):Я тут на просторах инета нашел код.
Вс сен 23, 2012 18:43:38
Вс сен 23, 2012 20:22:27
Вс сен 23, 2012 20:45:14
Классический вариант - создать сценарий сборки проекта для утилиты make. Трудоемко, но гибко. Позволит собирать проект одной командой.DruidCat писал(а):Может кто подскажет как запустить компилятор?
Вс сен 23, 2012 21:10:24
Вс сен 23, 2012 22:00:48