Здравствуйте! Собрал тут я часы на LCD, и хотел бы задать вопрос почему в программе(приложил файлы) нормально не работают прерывания??Я думаю из-за дребезга но тогда вопрос как его устранить в asm -e то знаю как а тут вот не понятно??Программа элементарная, знаний в CVAVR да и в СИ в целом немного поэтому просьба за огрехи не кидаться камнями ! Приложил проект в CVAVR и файлы Proteus! Не удивляйтесь что временные задержки делал через Deley а не через прерывания по таймеру, точность мне пока не нужна.
Вложения:
Комментарий к файлу: Часы LCD LCD Time.rar [46.2 KiB]
Скачиваний: 340
не работают прерывания ?? Я думаю из-за дребезга но тогда вопрос как его устранить в CVAVR
А вы в симуляторе проверьте - в нем нет дребезга и видно что в регистрах МК находится - вот и узнаете почему прерывания не работают. Проверьте выполнены ли условия для работы прерываний - "Прерывания в AVR" это стр. 3 в моей домашней.
_________________ Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Компания MEAN WELL пополнила ассортимент своей широкой линейки светодиодных драйверов новым семейством XLC для внутреннего освещения. Главное отличие – поддержка широкого спектра проводных и беспроводных технологий диммирования. Новинки представлены в MEANWELL.market моделями с мощностями 25 Вт, 40 Вт и 60 Вт. В линейке есть модели, работающие как в режиме стабилизации тока (СС), так и в режиме стабилизации напряжения (CV) значением 12, 24 и 48 В.
Зарегистрирован: Вт май 27, 2008 23:23:24 Сообщений: 238
Рейтинг сообщения:0
Все привет! Народ помогите разобраться, не как не могу прошить микроконтроллер Atmega8.
Шью я его вот с этими настройками, ниже программа которую я пытаюсь зашить.
Код:
#include <mega8> //Включаем библиотеку для работы с микроконтроллером ATMega8 #include <delay> //Включаем библиотеку для организации задержек void main(void) { PORTD=0x00; //Выставляем все выходы порта D на 0, то есть, выключаем весь порт D DDRD=0xFF; //Делаем порт D, как выход, чтобы на выходах порта было напряжение 5В while (1) //Организовываем бесконечный цикл { PORTD.0=1; //Включаем светодиод на 0 выходе порта D delay_ms(500); //Делаем задержку на 500 миллисекунд PORTD.0=0; //Выключаем светодиод на 0 выходе порта D delay_ms(500); //Делаем задержку на 500 миллисекунд }; }
Что я делаю не так у меня при программирование появляются сообщение, и когда они появляются я жму No, и после этого продолжается программирование.
Помогите разобраться, а то не как не могу понять в чём тут дело.
Всем спасибо за помощь! Программатор на 5 проводках.
Зарегистрирован: Чт мар 20, 2008 20:33:43 Сообщений: 173
Рейтинг сообщения:0
Такое впечатление, что вы не загрузили саму прошивку в File - Load Flash, а пытаетесь прошить тем, чего нет, возможно предполагая, что прошивка пропишется автоматически из проекта. Кроме того если вам не нужно писать EEPROM, то приписываейте командой Program - FLASH.
Зарегистрирован: Вт май 27, 2008 23:23:24 Сообщений: 238
Рейтинг сообщения:0
To delay Спасибо вам за помощь! Славу богу разобрался=)
To All Вот написал первую программку сам и она не работает, пишет что 4 ошибки.
Подскажите пожалуйста что в ней не так.
Строки в которых возникает ошибка подписаны комментариями.
Код:
#include <mega8> #include <delay> int main(void) { DDRD = 0xbf; PORTD |= BV(PD2); // тут первая ошибка while (1) { PORTD |= BV(PD0); delay_ms(500); PORTD &= ~BV(PD0); // тут вторая ошибка delay_ms(500);
If (PIND1 ==1) { break;} // тут третья ошибка }; } // тут четвёртая ошибка
#include <mega8> #include <delay> int main(void) { DDRD = 0xbf; PORTD |= BV(PD2); // тут первая ошибка while (1) { PORTD |= BV(PD0); delay_ms(500); PORTD &= ~BV(PD0); // тут вторая ошибка delay_ms(500);
If (PIND1 ==1) { break;} // тут третья ошибка }; } // тут четвёртая ошибка
Тема вроде про CodeVision, а в примере кода явно присутсвуют макросы от WinAVR. _BV() - такого насколько знаю нет в CodeVision, так что ошибки 1 и 2 с этим связаны.
3я ошибка - "PIND1" замените на "PIND.1"
4ая ошибка - что в ней? вроде количество "открытий"/"закрытий" совпадает.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 43
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения