Показано с 1 по 5 из 5
  1. #1
    Без позывного
    Регистрация
    08.01.2011
    Адрес
    Ярославль
    Сообщений
    17
    Поблагодарили
    0
    Поблагодарил
    0

    Помогите с кодом на С++. ATtiny2313. Бегущие огни

    Доброго времени суток дорогие форумчане!!!
    Нужна Ваша консультация (помощь). Изучаю работу микроконтроллера ATtiny2313 все как бы получается, все работает, но по моему мнению некорректно. Суть схемы очень проста (фото ниже). Собранная схема хорошо функцианирует если программа работает по первому варианту (от внутреннего RC генератора с использованием функции из библиотеки delay.h с временем 200 мс.).
    Но при работе от внешнего кварцевого резонатора на 4 МГц (CKSEL=1101, SUT=10) с использованием 16-ти разрядного таймера T1 (Предделитель на 1024 TCCR1B=0x05, коэффициент деления рассчитан по формуле: 4000000/1024=3906,25~3906; 1/3906=0,000256; 200мс/256мкс=781~780). реально время переключения светодиодов стало более 1 сек. О времени переключения 200 мс даже и речи быть не может. В чем косяк???
    В архиве svetodiod.rar исходный код программы в CodeVision AVR (вариант с таймером, который работает некорректно);
    В архиве Prog5.rar исходный код программы в CodeVision AVR (вариант с использованием внутреннего RC генератора и библиотеки delay.h. рабочий вариант)
    Изображения Изображения   
    Вложения Вложения


  2. #2
    High Power
    Регистрация
    30.01.2008
    Адрес
    Тульская область г.Кимовск
    Возраст
    66
    Сообщений
    502
    Поблагодарили
    84
    Поблагодарил
    93
    Я на Си не пишу, но есть у меня замечание.
    Таймер всегда считает в обратную сторону, т.е. на вычитание. Макс. значение таймера - 65536 (соответствует нулям в счётном регистре таймера). Вычитание в счётном регистре таймера происходит след. образом - 65536(точнее 0), 65535, 65534, 65533 и т.д. до нуля.
    Поэтому событие таймера надо ловить по достижению 65536-780=64756

    while (TCNT1<64756) {};

    Пользуйтесь калькуляторами для AVR (в них можно быстро посчитать события таймеров). Например KAVRCalc.

  3. #3
    Very High Power Аватар для RA3POD
    Регистрация
    29.11.2005
    Адрес
    Тула, Россия
    Возраст
    46
    Сообщений
    2,689
    Поблагодарили
    136
    Поблагодарил
    8
    Цитата Сообщение от RA3PKJ Посмотреть сообщение
    Таймер всегда считает в обратную сторону, т.е. на вычитание.
    извините но эпическая чушь


    код посмотрю вечером
    хотя я на арм работаю давно наверно и не пойму чо там в этом авр

  4. #4
    High Power
    Регистрация
    30.01.2008
    Адрес
    Тульская область г.Кимовск
    Возраст
    66
    Сообщений
    502
    Поблагодарили
    84
    Поблагодарил
    93
    А я работаю на ассемблере, поэтому текст на Си меня сбил с толку. Всё-равно там ошибка есть в программировании таймера, скорее всего подход неправильный. Признаю свою ошибку в предыдущем своём посте, бес попутал. Что-то навеяло не оттуда, блин. Конечно же таймер считает на увеличение, когда таймер дойдёт до переполнения, то сработает прерывание от таймера. Просто нужно правильно записать стартовое число в счётный регистр таймера. На ассемблере я бы записал стартовое число 65536-780=64756.

  5. #5
    High Power
    Регистрация
    26.02.2006
    Адрес
    Рыбинск, Ярославская обл.
    Возраст
    43
    Сообщений
    783
    Поблагодарили
    157
    Поблагодарил
    478
    Код не смотрел, но у меня такое было, когда не правильно работал с регистрами таймера. Что-то не так настроили/инициализировали. Пробуйте в Proteus'е.

Похожие темы

  1. Замена AT90S2313 на ATtiny2313 в синтезаторе US2II
    от UA9OSW в разделе Синтезаторы частоты
    Ответов: 9
    Последнее сообщение: 22.05.2012, 18:38
  2. Помогите разобраться с кодом
    от Powerman777 в разделе Микропроцессорная техника
    Ответов: 3
    Последнее сообщение: 17.12.2010, 15:49
  3. Бегушие огни (20 светодиодов)
    от tomas111 в разделе Общие вопросы
    Ответов: 5
    Последнее сообщение: 16.06.2007, 02:03
  4. Ответов: 3
    Последнее сообщение: 22.01.2006, 17:46

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Похоже, что вы используете блокировщик рекламы :(
Форум QRZ.RU существует только за счет рекламы, поэтому мы были бы Вам благодарны если Вы внесете сайт в список исключений!
как отключить
×
Рейтинг@Mail.ru
eXTReMe Tracker


Похоже, что вы используете блокировщик рекламы :(
Форум QRZ.RU существует только за счет рекламы, поэтому мы были бы Вам благодарны если Вы внесете сайт в список исключений!
как отключить
×