CodeVision AVR в вопросах и ответах
- Степаныч
- Открыл глаза
- Сообщения: 68
- Зарегистрирован: Ср июн 20, 2007 18:46:54
- Откуда: Красноярск
- Контактная информация:
Здравствуйте! Собрал тут я часы на LCD, и хотел бы задать вопрос почему в программе(приложил файлы) нормально не работают прерывания??Я думаю из-за дребезга но тогда вопрос как его устранить в asm -e то знаю как а тут вот не понятно??Программа элементарная, знаний в CVAVR да и в СИ в целом немного поэтому просьба за огрехи не кидаться камнями
! Приложил проект в CVAVR и файлы Proteus! Не удивляйтесь что временные задержки делал через Deley а не через прерывания по таймеру, точность мне пока не нужна.
- Вложения
-
- LCD Time.rar
- Часы LCD
- (46.2 КБ) 349 скачиваний
IN GOD WE TRUST
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
Степаныч писал(а): не работают прерывания ?? Я думаю из-за дребезга но тогда вопрос как его устранить в CVAVR
А вы в симуляторе проверьте - в нем нет дребезга и видно что в регистрах МК находится - вот и узнаете почему прерывания не работают. Проверьте выполнены ли условия для работы прерываний - "Прерывания в AVR" это стр. 3 в моей домашней.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
А почему так?
// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
min--;
}
// External Interrupt 1 service routine
interrupt [EXT_INT1] void ext_int1_isr(void)
{
min++;
}
Я так понимаю, что "External Interrupt" - это внешние прерывания, а у вас их нет. Только внутренние.
// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
min--;
}
// External Interrupt 1 service routine
interrupt [EXT_INT1] void ext_int1_isr(void)
{
min++;
}
Я так понимаю, что "External Interrupt" - это внешние прерывания, а у вас их нет. Только внутренние.
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
Igor_67 писал(а):Только внутренние.
Это какие же ?
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
Igor_67 писал(а): у кого нить есть пилюлька для CVAVR 2.03.8?
Врядли. У меня в домашней только на CVAVR 2.03.4
Но я рекомендую использовать CVAVR 1.29.5
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
Igor_67 писал(а):tych писал(а): я рекомендую использовать CVAVR 1.29.5
Он с XMega умеет работать?
Нет.
все в начале моей домашней странички.Igor_67 писал(а):Если не трудно дайте ссылку пожалуйста. И таблетку от жадности хотелось бы
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
tych писал(а):Igor_67 писал(а):tych писал(а): я рекомендую использовать CVAVR 1.29.5
Он с XMega умеет работать?
Нет.все в начале моей домашней странички.Igor_67 писал(а):Если не трудно дайте ссылку пожалуйста. И таблетку от жадности хотелось бы
Что-то я не могу скачать CVAVR 1.29.5, рапида пишет ERROR...
Все привет! Народ помогите разобраться, не как не могу прошить микроконтроллер Atmega8.
Шью я его вот с этими настройками, ниже программа которую я пытаюсь зашить.
Что я делаю не так у меня при программирование появляются сообщение, и когда они появляются я жму No, и после этого продолжается программирование.
Помогите разобраться, а то не как не могу понять в чём тут дело.
Всем спасибо за помощь! Программатор на 5 проводках.
Шью я его вот с этими настройками, ниже программа которую я пытаюсь зашить.
Код: Выделить всё
#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 проводках.
To delay
Спасибо вам за помощь! Славу богу разобрался=)
To All
Вот написал первую программку сам и она не работает, пишет что 4 ошибки.
Подскажите пожалуйста что в ней не так.
Строки в которых возникает ошибка подписаны комментариями.
Спасибо вам за помощь! Славу богу разобрался=)
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;} // тут третья ошибка
};
} // тут четвёртая ошибка
- mr.Kirill
- Мучитель микросхем
- Сообщения: 438
- Зарегистрирован: Вт сен 25, 2007 19:40:26
- Откуда: Челябинск
Код: Выделить всё
#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ая ошибка - что в ней? вроде количество "открытий"/"закрытий" совпадает.
Сейчас вроде правильно, но компилятор выкидывает три ошибки.
Чего то я не понимаю.
Что это значит? Помогите пожалуйста!
Чего то я не понимаю.
Код: Выделить всё
#include <mega8>
#include <delay>
int main(void) { //Ошибка The “main” function must return
DDRD = 0xbf;
PORTD.2=1;
while (1)
{
PORTD.0=1;
delay_ms(500);
PORTD.0=0;
delay_ms(500);
If (PIND.1) { break;}; // Ошибка Undefined symbol “If”
};
} //Ошибка Declaration syntax error
Что это значит? Помогите пожалуйста!
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
вы бы тогда уж приводили полный текст ошибок, как компилятор их выдает... в вообще-то в Си If и if - 2 большие разницы!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!