roboforum.ru

Технический форум по робототехнике.
Текущее время: 26 ноя 2024, 23:49

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Taimer0 mega8 Чтото торможу
СообщениеДобавлено: 14 дек 2006, 14:39 
Не в сети
Аватара пользователя

Зарегистрирован: 24 ноя 2004, 12:36
Сообщения: 195
Откуда: Харьков
Толи лыжи не едут толи Я ... :о)

Timer0 Mega8 WinAVR
МК влетает в прерывание по таймеру и сидит там
Где я торможу?

Вот кусок кода
...
unsigned int msDelay;

//Системный таймер (Timer0) 1мс для временных отсчетов задержки и тайм-аутов

void SysTimerInit(unsigned char tnum) //************ Timer Init
{
   if(tnum==0)
    {
     TCCR0 = _BV(CS02); //Прескаллер = 64
     TIMSK = _BV(TOIE0); //Прерывания от Timer0 разрешены
     TCNT0 = 0xB8; //Загрузка начального значения
     TCCR0 = 0x02; //Разрешить таймер
     }
}


ISR(TIMER0_OVF_vect)//*********************** Timer INTERRUPT
{
    TCNT0 = 0xB8; //Перегрузка счетчика для нового счета 1мс
    if(msDelay)   msDelay--;
    if(rxTimeOut) rxTimeOut--;
}

//************************************************ DELAY
unsigned char Delay(unsigned int msD)
{
msDelay=msD;
while(msDelay){};
return(0);
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 дек 2006, 14:55 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
посмотрите в VMLAB.    vmlab.nm.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 дек 2006, 14:59 
Не в сети
Аватара пользователя

Зарегистрирован: 24 ноя 2004, 12:36
Сообщения: 195
Откуда: Харьков
avr123.nm.ru писал(а):
посмотрите в VMLAB.    vmlab.nm.ru


Вот и меня терзают смутные сомнения что Студия мне мозги парит
Прийдется ставить и разбираться с Лабой :о(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 дек 2006, 15:08 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
уверен - не пожалеете.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 дек 2006, 15:09 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
смотрите примеры которые идуn с прогой - там есть и с  WinAVR  и  примеры курса тоже.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 дек 2006, 03:39 
Не в сети
Аватара пользователя

Зарегистрирован: 24 ноя 2004, 12:36
Сообщения: 195
Откуда: Харьков
РАЗОБРАЛСЯ :о)

"Ну блин ВЫ даете" (С) Генерал

Оказалось это ВСЕ издержки включенной оптимизации -Оs

в функции задержки происходило следующее
msDelay -> R24 R25
R24 сравнивался с 0

В прерывании происходило следующее
push R24 R25 - запомнить в стеке
R24--  Декремент
pop R24 R25 - достали из стека
IRET
с переходом на.. (нервных дальше прошу не читать :о))

R24 сравнивается с 0


Я в ШОКЕ

Отключил оптимизацию все стало на свои места


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 дек 2006, 03:52 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
попробуй CVAVR


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 дек 2006, 19:35 
Не в сети
Аватара пользователя

Зарегистрирован: 24 ноя 2004, 12:36
Сообщения: 195
Откуда: Харьков
А что в CVAVR нет своих прибамбасов.
Какая разнца на чем писать - идеальных компиляторов НЕТ.
И не будет :о)

Если уж сильно припрет напишу на АСМе


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 дек 2006, 19:43 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
вот я и говорю - попробуйте.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 дек 2006, 19:44 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
копия.


Последний раз редактировалось avr123.nm.ru 17 дек 2006, 02:45, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 дек 2006, 01:37 
Не в сети
Аватара пользователя

Зарегистрирован: 24 ноя 2004, 12:36
Сообщения: 195
Откуда: Харьков
Ок обязательно попробую для сравнения
Спасибо за совет


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 18 дек 2006, 01:56 
Не в сети

Зарегистрирован: 11 авг 2006, 01:02
Сообщения: 69
Откуда: ----
Есть одно волшебое слово - volatile.

Прочтите avr-libc-user-manual FAQ#1 - My program doesn’t recognize a variable updated within an interrupt routine

Анатолий.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 18 дек 2006, 01:56 
Не в сети

Зарегистрирован: 11 авг 2006, 01:02
Сообщения: 69
Откуда: ----
Есть одно волшебое слово - volatile.

Прочтите avr-libc-user-manual FAQ#1 - My program doesn’t recognize a variable updated within an interrupt routine

Анатолий.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 18 дек 2006, 12:48 
Не в сети
Аватара пользователя

Зарегистрирован: 24 ноя 2004, 12:36
Сообщения: 195
Откуда: Харьков
ПРОВЕРИЛ - ВСЕ РАБОТАЕТ

СПАСИБО за подсказку, действительно ВОЛШЕБНОЕ слово :о)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 18 дек 2006, 14:15 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
http://avr123.nm.ru/05a.htm


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO