#include <avr> #include <util> int main () { DDRB=0xFF; //Настройка портаB DDRA=0xFF; //Настройка порта A DDRD=0xFF; //Настройка порта D while (1) { PORTB=0xFF; //Включаем весь порт В _delay_ms(1000); //Ждем PORTB=0x00; //Выключам весь порт В _delay_ms(1000); //Ждём }
}
а вообще советую начинающим использовать Code Vision AVR. сам с него начинал
я ранее учил С++,думал что Ассемблер это что то неимоверно сложное,но сейчас разобравшись в нем понимаю,что бил далеко не прав,и сейчас даже не собираюсь переходить на С.
Встретил такой глюк-при вливании прошивы от 90s в тини 2313,после двух трех включений перестает работать девайс.На нажатие кнопок не реагирует.Кто нибудь встречался с таким глюком?Р.S фьюзы прошил как надо.
Зарегистрирован: Чт мар 13, 2008 11:57:03 Сообщений: 2 Откуда: russia
Рейтинг сообщения:0
Всем привет! Я тут впервые.
Недавно по роду работы решил впервые заняться АВРом. Раздобыл ATtiny2313 и пописал простейшие проги (типа лампочка моргает). Все нормально, программирую его ПониПрогой через СОМ-портовый адаптер (помех нет, коз и холодных тоже нет, верняк).
Поначалу у меня стоял внутренний тактовый источник на 8 МГц, что вкупе с CKDIV=0 давало 1 МГц тактовой частоты. Единственный фьюз, который я изменил по сравнению с дефолтом - установил BODLEVEL1=0, чтобы включился BOD. И все работало, лампочки моргали, на Т0 считались импульсы от кнопкотриггерного источника.
Но тут решил сменить источник тактовой частоты. Дело в том, что мне хотелось низкочастотного ШИМа (собственно ради него я и залез в АВР, ибо нужен маленький регулятор положения электромагнитного привода рабочего органа с ШИМ-выходом и ОС с фотодатчика перемещения без компа, на котором все было сделано). А на частоте 1 МГц минимальная частота ШИМа 1 кГц. Это в принципе нормально, но вот захотелось поменьше погонять. И решил я запитать МК от осциллятора Watchdog-а, который дает 128 кГц, что с предделением на 8 дает 32 кГц на ядре и 500 Гц ШИМа при делении 64.
Написал прогу, но сначала решил запрогить фьюзы. За чем дело стало - снял галочку CKSEL1, то есть фьюзы CKSEL=0110, что по даташиту подключает ватчдог и установил галку на SUT1, то есть SUT=00, что при рабочем БОДе должно быть вполне рульно. Запрогил фьюзы.
После этого микроконтроллер прекратил определяться ПониПрогой, то есть ничего в него не пишется и не читается, т.е. прога пишет "Unknown or missing device -24". При этом программатор рабочий (проверил на раздобытом АТмега16), все в поряде, а тини2313 так и не хочет прогиться. При этом он не сгорел - при включении его в схемку он как и раньше считает импульсы и зажигает LEDы. Т.е. работает старая прога.
Не могу понять в чем проблема. Дело явно не в RSTDISBL и SPIEN - их в ПониПроге прочто нельзя не так запрогить. МК рабочий. Но его не видно. Одна весч меня удивила. Если попробовать его флэш или еепром или фьюзы почитать, то фиг вам, писать еепром и фьюзы тоже никак. Если же пробуешь писать флеш, то прога виснет намертво, не сообщая ошибки. Но если после зависания выключить питание программатора, то программирование проходит, сообщая правда в конце "write failed".
Наваял тут проэктик один на ATTiny2313 - для исключения максимального количества ошибок на этапе разработки долго думал какой бы отладчик заюзать. Proteus и VMLAB - не поддерживает ATTiny2313 , отладчик AVRStudio некорректно ведёт себя именно с этим узлом - модулем UART. А в отладчике AB всё бы хорошо... но там нельзя указывать содержимое байта который нужно передать.
В кратком курсе всем советую : Выбирайте ТОТ МК для работы с которым у вас есть ИНСТРУМЕНТЫ !!!
РадиоКотовец писал(а):
Вобщем что посоветуете ? Ну кроме как перейти на др МК?
Попробоуйте "AVR симулятор IDE" - можно найти на заглавной странице курса по AVR - моя домашняя страничка. Я его использовал и для тини13 и для меги48 а лекарство на cracks.am ищется просто.
_________________ Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
есть CodeVisionAVR C Compiler Evaluation и ATtiny2313, CodeVisionAVR нехочет компилировать printf(); пишит лимит размера файла переполнен. есть альтернатива?
П.С. мне нужно вывести в USART переменную.
наперед, велике дякую:)
Либо оптимизировать код, так чтоб места хватало, либо использовать полную версию компилятора, либо вообще сменить компилятор. Думаю, так, если правильно понял вопрос.
_________________ Оптимизм х (Опыт + Знания) = const
Решил занятся микроконтроллерами и для начала спаять программатор. Однако зашел на сайт Александра Редчука и увидел что схема отличается от той,которая приведена в обучалке. Наверное она там она просто обновляется иногда. Какую лучше паять и не изменится ли что при прошивке .
Хочу тупо повторить это.
Но испытываю трудности с добычей AT90S2313, поэтому хочу использовать аналог - ATtiny2313. Вопрос в том будет ли всё это дело работать с тинькой? В прошивке я дуб дубом , уж извиняйте.
ЗЫ: Слышал, что нужно со фьюзами поработать.[/u]
Карма: 13
Рейтинг сообщений: 14
Зарегистрирован: Вс июн 01, 2008 00:17:35 Сообщений: 4673 Откуда: Я всего лишь плод вашего воображения...
Рейтинг сообщения:0 Медали: 1
regenerator писал(а):
Хочу тупо повторить это. Но испытываю трудности с добычей AT90S2313, поэтому хочу использовать аналог - ATtiny2313. Вопрос в том будет ли всё это дело работать с тинькой? В прошивке я дуб дубом , уж извиняйте. ЗЫ: Слышал, что нужно со фьюзами поработать.[/u]
Думаю что само устройство будет работать. Почему нет? Вот с прогой - фиг знает. Вроде бы должно. А насчет фьюзов не парься. Когда начнешь ваять - пиши, помогу их запрогить, а сейчас одно запомни - при помощи фьюзов выбирается источник частоты (а также делитель на 8 для внутреннего генератора), режимы БОДа и прочая фигня, которая для МП3 никак не помешает.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения