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

 
 
> вызвать прерывание каждые 50мсек
romez777
сообщение Nov 19 2004, 07:54
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 292
Регистрация: 9-11-04
Пользователь №: 1 077



Приветствую.

Продолжаю разборки с atmega162. Вот такой кусок кода, использующий прерывание и таймер (использую WinAVR и AVRstudio для отладки):

#include <inttypes.h>
#include <interrupt.h>
#include <io.h>
#include <sig-avr.h>

SIGNAL(SIG_OUTPUT_COMPARE1A)
{
// далее обработка ......
// .........
}

void Timer1_Init(void)
{
SREG = (1 << SREG_I); // enable global interrupt
TCCR1A = 0x00;
TCCR1B = 0x04; // set prescale
TCCR1B = (1 << CS10) | (1 << WGM12);

TIMSK = (1 << OCIE1A);

// load value
TCNT1H = 0xFE;
TCNT1L = 0x7A;

// set compare register for 50ms
OCR1AH = 0x01;
OCR1AL = 0x86;
}

int main(void)
{
Timer1_Init();

// DDRB = 0xFF;
while (1)
;
return 1;
}

На первый взгляд все правильно, но не сдается мне что не получаю я задержки в 50мсек, а проверить в симуляторе, как предложил IgorKossak, не могу (симулятор не позволяет).

Вообщем, я окончательно запутался smile.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- romez777   вызвать прерывание каждые 50мсек   Nov 19 2004, 07:54
- - Alex2172   А осциллографа то нет под рукой? (Ну или хотябы св...   Nov 19 2004, 08:13
- - romez777   Цитата(Alex2172 @ Nov 19 2004, 11:13 AM)А осц...   Nov 19 2004, 08:25
- - Styv   Попробуй подели генерируемую частоту (~50мс) на 2...   Nov 19 2004, 08:59
- - KRS   А зачем при инициализации таймера в TCNT писать 0x...   Nov 19 2004, 11:15
- - lamerok   Кодvoid InitTimer (void) {   TCCR1A ...   Nov 19 2004, 11:55
- - lamerok   Блин нечаяно нажалось, первое не смотрите.... Вот ...   Nov 19 2004, 12:07
- - lamerok   Еще поправим маленько. Вечер глучу малость Код#...   Nov 19 2004, 12:10
- - romez777   Цитата(KRS @ Nov 19 2004, 02:15 PM)А зачем пр...   Nov 22 2004, 00:08
- - romez777   Цитата(lamerok @ Nov 19 2004, 03:07 PM)Блин н...   Nov 22 2004, 02:14
- - KRS   Цитата(romez777 @ Nov 22 2004, 03:08 AM)Так п...   Nov 22 2004, 10:27
- - romez777   Цитата(KRS @ Nov 22 2004, 01:27 PM)Изначально...   Nov 22 2004, 10:48
- - KRS   Цитата(romez777 @ Nov 22 2004, 01:48 PM)Но во...   Nov 22 2004, 11:19
- - romez777   Цитата(KRS @ Nov 22 2004, 02:19 PM)Так и долж...   Nov 22 2004, 11:52
- - KRS   Цитата(romez777 @ Nov 22 2004, 02:52 PM)Цитат...   Nov 22 2004, 12:04
- - romez777   Цитата(KRS @ Nov 22 2004, 03:04 PM)А как можн...   Nov 22 2004, 14:37
- - lamerok   romez777 1. В режиме слейва данные передаются толь...   Nov 22 2004, 15:17
- - IgorKossak   Цитата(KRS @ Nov 22 2004, 02:19 PM)Но в любом...   Nov 22 2004, 15:34
- - Fish   Цитата(lamerok @ Nov 19 2004, 03:10 PM)Еще по...   Nov 23 2004, 11:42
- - romez777   Цитата(Fish @ Nov 23 2004, 02:42 PM)2 lamerok...   Nov 23 2004, 12:18
- - lamerok   Fish 1. Это я взял, из программы, где необходимо б...   Nov 24 2004, 04:33
- - lamerok   Там везде должно быть SBCI R17,0xYY вместо SBCI R...   Nov 24 2004, 05:20
- - Fish   Согласен, написал глупость OCR1B = TCNT1 + PERIOD;...   Nov 24 2004, 05:33


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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 20:49
Рейтинг@Mail.ru


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