Перейти к содержанию

Едреня-Сеня

Members
  • Постов

    4
  • Зарегистрирован

  • Посещение

Электроника

  • Стаж в электронике
    Менее года
  • Оборудование
    Паяльник, мультиметр, осциллограф.

Достижения Едреня-Сеня

Новичок

Новичок (1/14)

  • Неделя на форуме
  • Месяц на форуме
  • Год на форуме

Последние значки

0

Репутация

  1. Всё нашёл Debug -> Options -> Tools -> Tool settings -> Mask interrupts while stepping Выставил False и всё заработало. После переполнения счётчика вызывается функция прерывания и флаг автоматически сбрасывается. После выполнения функции программа возвращается в бесконечный цикл.
  2. Я делаю пошаговую отладку. Отладчик даже не видит функции прерывания. В IOView было бы видно, что первый бит порта B изменился на 1. Пишут что нужно зайти в Debag --> Option and settings --> Debugger --> mask interrupts while stepping изменить значение на false. Только вот у меня нет такого mask interrupts while stepping. И вообще нет ничего что можно было бы поставить false)).
  3. Но у меня стоит sei();. Добавил манипуляции с портом B. А толку ноль. #define F_CPU 8000000 #include <avr/io.h> #include <avr/interrupt.h> ISR (TIMER0_OVF_vect) { DDRB = 0b00000001; } int main(void) { PORTB = 0xFF; TCCR0 = (1<<CS00); TIMSK = (1<<TOIE0); sei(); while(1) { asm("nop"); } }
  4. Здравствуйте! Понадобился мне таймер, чтоб время отсчитывать. Начитался всякого разного и ввожу такой код. #define F_CPU 8000000 #include <avr/io.h> #include <avr/interrupt.h> ISR (TIMER0_OVF_vect) { asm("nop"); } int main(void) { sei(); TIMSK = (1<<TOIE0); TCCR0 = (1<<CS00); while(1) { asm("nop"); } } Я так понял что когда в регистре TCNT0 будет 255, таймер сбрасывается и на TOV0 (флаг прерывания) будет единица. И если прерывание по переполнению разрешено (TIMSK = (1<<TOIE0);), то запускаться функция обработки этого прерывания (ISR (TIMER0_OVF_vect)). Но что я только не делал, а функция эта не запускается и TOV0 не сбрасывается на ноль автоматически. При отладке таймер переполняется и ничего не происходит. Что тут может быть не так? Может я что-нибудь не учёл или ещё что? Программирую в AtmelStudio 6.
×
×
  • Создать...