реклама на сайте
подробности

 
 
> Отладка в IAR прерывания Т0 в mega8535
Sergey83
сообщение Jul 23 2008, 08:48
Сообщение #1





Группа: Новичок
Сообщений: 14
Регистрация: 2-08-07
Пользователь №: 29 517



Подскажите убогому help.gif
Как отдебагить простенькую программку?
Задача проста - по прерыванию от переполнения таймера0 проинкрементировать переменную "i".
Проблема - не выходит в прерывание в режиме дебагер.
Компилирую и дебагю в IAR Embedded Workbench for Atmel AVR 4.12A

Может с настройками где наплужил?
Благодарен за любую помощь. beer.gif

#include <iom8535.h>
#include <inavr.h>

int i=1;
int ii=0;
int iii=0;

void timer0_init(void) //
{
TCCR0 = 0x00; //stop timer
TCNT0 = 0x17; //set count value
TCCR0 = 0x05; //start timer
}

#pragma vector = TIMER0_OVF_vect
__interrupt void timer0_ovf_isr(void)
{
TCNT0 = 0x30; //reload counter value
i++;
}
///-----------------------------------------
/////////////////////////////////////////////////////////////////////////

int main()
{
__disable_interrupt(); //disable all interrupts
timer0_init();
TIMSK = 0x01;
__enable_interrupt(); //re-enable interrupts

while(1)
{
ii++;
}
}

Сообщение отредактировал Sergey83 - Jul 23 2008, 08:49
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GDI
сообщение Jul 23 2008, 10:37
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Цитата
Как проверить работу самого таймера?

Так и проверить, посмотреть как будет он считать, как будет меняться регистр TCNT0.
Цитата
Что такое прескаллер?
Ээээ...кхм... а зачем вы в TCCR0 пятерку заносите? Этим вы ставите прескаллер, т.е. делитель на 1024, напишите для отладки TCCR0 = 0x01, тогда изменение TCNT0 будет происходить на каждом клоке. Вот и следите как он меняется, доходит ли до 0xFF и что происходит дальше, как минимум флаг прерывания таймера должен установиться.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
Sergey83
сообщение Jul 23 2008, 10:47
Сообщение #3





Группа: Новичок
Сообщений: 14
Регистрация: 2-08-07
Пользователь №: 29 517



Цитата(GDI @ Jul 23 2008, 13:37) *
Так и проверить, посмотреть как будет он считать, как будет меняться регистр TCNT0.
Ээээ...кхм... а зачем вы в TCCR0 пятерку заносите? Этим вы ставите прескаллер, т.е. делитель на 1024, напишите для отладки TCCR0 = 0x01, тогда изменение TCNT0 будет происходить на каждом клоке. Вот и следите как он меняется, доходит ли до 0xFF и что происходит дальше, как минимум флаг прерывания таймера должен установиться.

теперь поняв что такое прескаллер делитель по нашему smile.gif

После инизиализации таймера TCNT0 = 0x17 и стоит как вкопанный.
Полная фигня которой я понять не могу 07.gif этоже регистр таймера может че с инициализацией или настройкой дебагера?
Go to the top of the page
 
+Quote Post
Stanislav_S
сообщение Jul 23 2008, 11:05
Сообщение #4


извечный пессимист
*****

Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125



Цитата(Sergey83 @ Jul 23 2008, 15:47) *
теперь поняв что такое прескаллер делитель по нашему smile.gif

После инизиализации таймера TCNT0 = 0x17 и стоит как вкопанный.
Полная фигня которой я понять не могу 07.gif этоже регистр таймера может че с инициализацией или настройкой дебагера?

Для начала в дебагере вам необходимо включить эмуляцию прерываний. Для этого зайдите в опцию Simulator - Interrupt и включите нужное прерывание, незабывая выставить там нужные параметры.


--------------------
Slaves are those of this world
Given freedom to lay chains upon The Master
The wolf is no longer free
Release the chains and come for me
Go to the top of the page
 
+Quote Post
Sergey83
сообщение Jul 23 2008, 11:13
Сообщение #5





Группа: Новичок
Сообщений: 14
Регистрация: 2-08-07
Пользователь №: 29 517



Цитата(Stanislav_S @ Jul 23 2008, 14:05) *
Для начала в дебагере вам необходимо включить эмуляцию прерываний. Для этого зайдите в опцию Simulator - Interrupt и включите нужное прерывание, незабывая выставить там нужные параметры.

нахел но там непонятные мне параметры как их настрайвать?
Из списка выбрал TIMER0_OVF а дальше? help.gif

Сообщение отредактировал Sergey83 - Jul 23 2008, 11:18
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Sergey83   Отладка в IAR прерывания Т0 в mega8535   Jul 23 2008, 08:48
- - GDI   Так просмотрите по шагам, что у вас в регистры тай...   Jul 23 2008, 09:17
|- - Sergey83   Цитата(GDI @ Jul 23 2008, 12:17) Так прос...   Jul 23 2008, 09:52
- - =GM=   Цитата(Sergey83 @ Jul 23 2008, 07:48) Мож...   Jul 23 2008, 09:56
- - Sergey83   Из даташита взал 0 бит-переполнение 1 бит-сравнен...   Jul 23 2008, 10:03
|- - =GM=   Цитата(Sergey83 @ Jul 23 2008, 09:03) Мож...   Jul 23 2008, 10:08
|- - MrYuran   Цитата(=GM= @ Jul 23 2008, 14:08) Вот чёр...   Jul 23 2008, 10:22
- - GDI   ЦитатаВОПРОС - В других отладчиках прерывания рабо...   Jul 23 2008, 10:03
- - Sergey83   Поставил TIMSK = 0x03; Эфекта никакого. в каком ...   Jul 23 2008, 10:06
|- - =GM=   Цитата(Sergey83 @ Jul 23 2008, 09:06) в к...   Jul 23 2008, 10:17
|- - Sergey83   Цитата(=GM= @ Jul 23 2008, 13:17) А точно...   Jul 23 2008, 10:22
- - GDI   Можно отлаживаться в AVR Studio, там какой бит у к...   Jul 23 2008, 10:08
- - GDI   Кодvoid timer_init(void) { TCCR1A = 0; T...   Jul 23 2008, 10:17
|- - Sergey83   Цитата(GDI @ Jul 23 2008, 13:17) Кодvoid ...   Jul 23 2008, 10:21
- - GDI   Еще раз говорю, проверьте по шагам как там все раб...   Jul 23 2008, 10:26
|- - Sergey83   Цитата(GDI @ Jul 23 2008, 13:23) Чтобы до...   Jul 23 2008, 10:27
|- - Stanislav_S   Цитата(Sergey83 @ Jul 23 2008, 16:13) что...   Jul 23 2008, 11:21
|- - Sergey83   Цитата(Stanislav_S @ Jul 23 2008, 14:21) ...   Jul 23 2008, 11:26
- - Sergey83   полная лажа этим отладчиком   Jul 23 2008, 11:06
|- - Stanislav_S   Цитата(Sergey83 @ Jul 23 2008, 16:06) пол...   Jul 23 2008, 11:09
- - shamray   На сколько я знаю, ИАР не симулирует переферию и с...   Jul 23 2008, 19:59


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 15:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.01409 секунд с 7
ELECTRONIX ©2004-2016