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

 
 
> Timer1 в ATmega128 режим сравнения, в AVR Studia 4 непонятная путаница с адрессами регистров
Ph. Anatoliy
сообщение Nov 7 2009, 15:52
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 14-12-07
Из: г. Таганрог, Ростовская обл.
Пользователь №: 33 310



Написал следующий код. При пошаговом прохождении в AVR studia 4 значения загружаются совершенно не в те регистры.

Пдскажите пожалуйста, может у кого есть кусочек кода как на 128 меге настроить таймер 1 на срабатывание прерываения COMPA и COMPB при этом при срабатывании COMPB сбрасывать таймер счетчик в 0.

Код
#include <avr/io.h>
#include <avr/interrupt.h>

ISR(TIMER3_COMPA_vect)
{
  
    PORTF = 0x01;
}

ISR(TIMER3_COMPB_vect)
{
  
    PORTF = 0x03;
}


int main (void)
{
    unsigned char sreg;

    DDRF = 0xff;
    PORTF = 0x00;

    OCR3AH=0x05;
    OCR3AL=0x03;
    
    TCCR3A=0xA0;
    TCCR3B=0x02;
    
    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=0x18;
    ETIMSK=0x00;

    sei();
    
    while (1)
    {
    }

    return 0;
}
Причина редактирования: Оформление цитаты исходника.

Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
chief_olimp
сообщение Nov 8 2009, 08:18
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 249
Регистрация: 31-10-05
Из: Украина Нетешин
Пользователь №: 10 344



SIGNAL уже давно устарел, хотя и работает. И говоря про режим сравнения по А или В я использую строку вида
Код
ISR(TIMER3_COMPB_vect)
{
  TCCR3В += 0xA0;
}
И не нужно сам таймер обнулять. Он просто будет считать дальше.
Go to the top of the page
 
+Quote Post
defunct
сообщение Nov 8 2009, 17:09
Сообщение #3


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(chief_olimp @ Nov 8 2009, 10:18) *
TCCR3В += 0xA0;

И что бы это значило?
Насилуете ICNC и пишете "1" в reserved bit?

• Bit 5 – Reserved Bit
This bit is reserved for future use. For ensuring compatibility with future devices, this bit
must be written to zero when TCCRnB is written.


Цитата
И не нужно сам таймер обнулять. Он просто будет считать дальше.

Если не видите разницы в частоте между счетом до 500 и счетом до 65535... то лучше ничего не советуйте.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 17:34
Рейтинг@Mail.ru


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