Кстати отличная мысль. Пусть не уверен, что получится такую сложную для меня плату собрать, попытка не пытка ) Вообще я нашел книжку "Самоучитель разработчика устройст на микроконтролерах AVR", там и си, и ассемблер есть. Сейчас по ней и учусь )) Сегодня приехал программатор и несколькими мк, попробую сделать традиционный бегущий огонек (: Главное справиться с самым сложным, схему собрать ) Кстати очень забавно писать на си после лиспа, почти так же забавно как на лиспе после си =)
Можете собрать схему именно в Протеусе, если не хотите заморачиваться с пайкой. По поводу языков программирования - никогда не поздно выучить какой нибудь новый для себя ЯП
Привет всем. Прошивал atmega16.. все было ок, диоды мигали. Натыкал паяльником,перепайвал у ножек. Включил не пашет. Подрубил к компу вылезла ошибка: FLASH contents mismatch at addres: 16h FLASH Read: 140h Buffer data: 940Ch ( ну вообщем адреса изменяются и ничего прошить немогу) Как быть? Жив ли контроллер?
Прошу помочь разобраться с программой. Хочу с ИК-пульта (протокол RC5) управлять светом в комнате используя тини13, но никак не могу разобраться с кодом. Нашел в сети несколько алгоритмов, но после подгонки под тини13 они не работают. В процессе отладки выяснил, что в обработчике прерываний по входу исполняются строки case 0 и if (not_korr == 1), а вот величина счетчика периодов таймера(Timer) не проходит условие для временнЫх пределов (проверка короткого промежутка и проверка длинного промежутка). Пишу на Си в CVAVR. В чем я ошибся?
// External Interrupt(s) initialization // INT0: On // INT0 Mode: Any change // Interrupt on any change on pins PCINT0-5: Off GIMSK=0x40; MCUCR=0x01; GIFR=0x40;
// Global enable interrupts #asm("sei") led=!led; delay_ms(100); led=!led; while (1) {
Частоту в Configure the project менял несколько раз от 1 Мгц до 9.6Мгц и все безрезультатно, а именно - светодиод мигает раз в 4-5 секунд, как будто частота МК стоит 100кГц. Фьюзы не трогал вообще. В чем причина такого поведения?
Лавич писал(а):Помогите советом. Не могу установить нужную частоту на tiny13. В чем причина такого поведения?
Думаю в том, что
Лавич писал(а):Фьюзы не трогал вообще.
Ведь тактовая определяется как раз фьюзами! Ну а также подключенным кварцем если он используется. А частота в проекте определяет всякие константы в программе, определяющие разные там делители уартов, задержки для delay_ms и т.п. Для правильной работы программы они обе должны совпадать. Но на приведенную прогу настройка в проекте видимо не влияет, поскольку в ней задержки и прочее не используются. Если я конечно при беглом взгляде чего-то не перепутал.
Лавич писал(а):Помогите советом. Не могу установить нужную частоту на tiny13. В чем причина такого поведения?
Думаю в том, что
Лавич писал(а):Фьюзы не трогал вообще.
Хм, значит ли это то что данный МК без внешнего источника сигнала либо кварца может быть запрограммирован только на определенную частоту посредством фьюзов (9.8Мгц,4.6Мгц,128кГц) и я не смогу выставить на нем, например, 1Мгц?
А, у 13-го это не совсем так. У него есть регулируемый делитель системного клока. То есть фузами выставляется источник - внешний (только генератор, кварц не поддерживается), 4.8, 9.6 и 128кГц. Еще фузами можно выбрать стартовое значение делителя - 1 или 8. А после всего этого - уже программой можно вписать делитель какой надо. В общем, внимательно читать страницы с 24 по 28.
Да, фузы источника - CKSEL0, CKSEL1 (не выставлять в 00!), делителя - CKDIV8. Регистр СLKPR.
Спасибо за помощь, boez. До фузов я уже добрался и поигрался с ними, но не помогает, к тому же, они изначально были поставлены на 9.6кГц, а у меня все равно работает как на 128кГц. Делитель СLKPR я вообще не использую. Тиньки у меня две и у обеих такая проблема. Менял фузы ставя 4.8МГц, но даже разницы не почувствовал, причем сами фузы пишутся и читаюся верно после отключения-подключения к программатору (использую программатор Громова и UniProf для прошивки). У меня есть ещё Mega8535, у неё фузы стоят на 1МГц и с временными промежутками все в порядке. Может тиньки бракованные и выкинуть мне их нафиг?