Скажите где найти описания регистров для счетчиков?

Тема в разделе "Микроконтроллеры AVR", создана пользователем Радиокот, 25 фев 2019.

  1. AlexU

    AlexU Гуру

    и получить постоянный перезагруз по той простой причине, что:
    и
    А где остальные обработчики?
     
  2. parovoZZ

    parovoZZ Гуру

    это домашнее задание студенту))
    но подскажу - все они описаны в файле iotn2313a.h
     
  3. parovoZZ

    parovoZZ Гуру

    битовая маска - это когда по определенному правилу какие-то биты обнуляем (или устанавливаем, т.е. приравниваем к 1) в независимости от их значений, а остальные биты не трогаем.

    это переменная - признак чего-либо. Как правило, какого-то события. В одном месте кода у нас произошло ожидаемое событие - взвели флаг. В другом месте кода проверили этот флаг - взведен. Значит, что-то делаем и флаг обнуляем, чтобы при повторном проходе не повторять сделанное - программа-то крутится по кругу.
     
  4. AlexU

    AlexU Гуру

    Вот жеж балбесина-то....
    В файле 'iotn2313a.h' определены макросы, которые упрощают декларацию обработчиков прерываний. А, если активировать прерывание и не определить его обработчик, то будет назначен обработчик по-умолчанию.
    И вот, студент Паравозз, вопрос -- а что делает обработчик прерываний, который "по-умолчанию"?
     
  5. parovoZZ

    parovoZZ Гуру

    В ISR можно писать все, что душа пожелает - компилятор съест любой бред. А чтобы написать то, что нужно, я подсказал где подсмотреть.
    По второму вопросу - насколько я знаю, компилятор GNU C неиспользуемые вектора глушит уходом на вектор ресета.
     
    Радиокот нравится это.
  6. А в чем смысл постинскеремента и инскремента?
     
  7. parovoZZ

    parovoZZ Гуру

    Ответ есть в учебнике. Я его пересказывать не собираюсь.
     
  8. AlexU

    AlexU Гуру

    А теперь раскинь мознами -- ты активировал три прерывания, а обработчик задал только для одного, как будет работать программа?
     
  9. parovoZZ

    parovoZZ Гуру

    Вот пусть ТС и раскидывает мозгами. Это ему на домашнее задание.
     
  10. AlexU

    AlexU Гуру

    Прикольно...
    Сначала напроситься помочь, потом предоставить шаблон неработающего кода в качестве помощи и в конце слиться словами -- "пусть ТС сам разбирается, что я там в коде накосячил".
    Помощничек блин...
     
    Kamikadze и KindMan нравится это.
  11. parovoZZ

    parovoZZ Гуру

    Про какие косяки речь? Приведённые куски кода не являются самостоятельным проектом. ТС спрашивал за регистры - я ему их привёл. Странно, что этого не сделал ты. Зато докпываться до каждой запятой - это мы в первых рядах.
     
  12. Ребята в чем ошибка? Почему ,я так думаю, таймер не работает(да тот самый;))
    вод код
    Код (Text):
    rjmp rezet; вектор прерывания
    reti
    reti
    reti
    rjmp sek
    reti
    reti
    reti
    reti
    reti
    reti
    reti
    reti
    reti
    reti
    reti
    reti
    reti
    reti
    reti
    reti
    sek:;метка записи секунды
    CPSE r16, r17; сравнить с 60
    rjmp s
    clr r16 ;очистить регистр
    out portd,r16
    reti
    s:
      INC r16;+1
      out portd,r16
      reti
    rezet:
      ldi r16, low(ramend)
      out spl, r16; стек
      ldi r16,0b11111111
      out ddrd,r16; выводы на выход
      ldi r16,high(15625)
      out ocr1ah,r16
      ldi r16, low(15625)
      out ocr1al,r16
      ldi r16, 0b00001011
      out tccr1a,r16
      ldi r16,(1<<ocie1a)
      out timsk,r16
      sei
      ldi r17,0b00001001; загрузка регистра сравнения
      CLR r16; предочистка
      cykle:
      rjmp cykle