CodeVision AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Степаныч
Открыл глаза
Сообщения: 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
Откуда: Москва
Контактная информация:

Сообщение tych »

Степаныч писал(а): не работают прерывания ?? Я думаю из-за дребезга но тогда вопрос как его устранить в CVAVR

А вы в симуляторе проверьте - в нем нет дребезга и видно что в регистрах МК находится - вот и узнаете почему прерывания не работают. Проверьте выполнены ли условия для работы прерываний - "Прерывания в AVR" это стр. 3 в моей домашней.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

Сообщение Igor_67 »

А почему так?

// 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
Откуда: Москва
Контактная информация:

Сообщение tych »

Igor_67 писал(а):Только внутренние.

Это какие же ?
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

Сообщение Igor_67 »

Упс! :)) Виноват! Уже никакие!

А скажите плз, у кого нить есть пилюлька для CVAVR 2.03.8?
Аватара пользователя
tych
Э...
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва
Контактная информация:

Сообщение tych »

Igor_67 писал(а): у кого нить есть пилюлька для CVAVR 2.03.8?

Врядли. У меня в домашней только на CVAVR 2.03.4

Но я рекомендую использовать CVAVR 1.29.5
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

Сообщение Igor_67 »

tych писал(а):
Igor_67 писал(а): у кого нить есть пилюлька для CVAVR 2.03.8?

Врядли. У меня в домашней только на CVAVR 2.03.4

Но я рекомендую использовать CVAVR 1.29.5


А почему его? Он с XMega умеет работать? Если не трудно дайте ссылку пожалуйста. И таблетку от жадности хотелось бы :)))
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

Сообщение Igor_67 »

Поставил себе CVAVR 2.03.4 ВЕСЧЬ!!! Но всё же некоторых распространённых либов нету. Опять же придётся свои писать или брать где то :(
Аватара пользователя
tych
Э...
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва
Контактная информация:

Сообщение tych »

Igor_67 писал(а):
tych писал(а): я рекомендую использовать CVAVR 1.29.5

Он с XMega умеет работать?

Нет.
Igor_67 писал(а):Если не трудно дайте ссылку пожалуйста. И таблетку от жадности хотелось бы :)))
все в начале моей домашней странички.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
igor727
Родился
Сообщения: 18
Зарегистрирован: Сб июл 05, 2008 13:21:59

Сообщение igor727 »

Подскажите что означают директивы препроцесора - #pragma used+(-)
- #pragma asm_function+ (-),
в хелпе не смог найти.
Iptash
Открыл глаза
Сообщения: 41
Зарегистрирован: Вс ноя 02, 2008 13:19:55

Сообщение Iptash »

tych писал(а):
Igor_67 писал(а):
tych писал(а): я рекомендую использовать CVAVR 1.29.5

Он с XMega умеет работать?

Нет.
Igor_67 писал(а):Если не трудно дайте ссылку пожалуйста. И таблетку от жадности хотелось бы :)))
все в начале моей домашней странички.


Что-то я не могу скачать CVAVR 1.29.5, рапида пишет ERROR...
Аватара пользователя
slesar
Открыл глаза
Сообщения: 71
Зарегистрирован: Пн июн 11, 2007 14:16:06
Откуда: Таганрог

Сообщение slesar »

Кто-нибудь знает как обновить базу микроконтроллеров CVAVR?Нужно прошить ATmegа 1280.
Аватара пользователя
Aheir
Модератор
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург
Контактная информация:

Сообщение Aheir »

Самое простое - переставить свежую версию.
Оптимизм х (Опыт + Знания) = const
Аватара пользователя
Sounds
Прорезались зубы
Сообщения: 238
Зарегистрирован: Вт май 27, 2008 23:23:24

Сообщение Sounds »

Все привет! Народ помогите разобраться, не как не могу прошить микроконтроллер 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 проводках.
Вложения
1273.jpg
(56.74 КБ) 480 скачиваний
1283.gif
(10.02 КБ) 464 скачивания
Аватара пользователя
delay
Нашел транзистор. Понюхал.
Сообщения: 173
Зарегистрирован: Чт мар 20, 2008 20:33:43
Контактная информация:

Сообщение delay »

Такое впечатление, что вы не загрузили саму прошивку в File - Load Flash, а пытаетесь прошить тем, чего нет, возможно предполагая, что прошивка пропишется автоматически из проекта. Кроме того если вам не нужно писать EEPROM, то приписываейте командой Program - FLASH.
Аватара пользователя
Sounds
Прорезались зубы
Сообщения: 238
Зарегистрирован: Вт май 27, 2008 23:23:24

Сообщение Sounds »

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;} // тут третья ошибка
   };
}  // тут четвёртая ошибка
Аватара пользователя
mr.Kirill
Мучитель микросхем
Сообщения: 438
Зарегистрирован: Вт сен 25, 2007 19:40:26
Откуда: Челябинск

Сообщение mr.Kirill »

Код: Выделить всё

#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ая ошибка - что в ней? вроде количество "открытий"/"закрытий" совпадает.
Аватара пользователя
Sounds
Прорезались зубы
Сообщения: 238
Зарегистрирован: Вт май 27, 2008 23:23:24

Сообщение Sounds »

Сейчас вроде правильно, но компилятор выкидывает три ошибки.
Чего то я не понимаю.

Код: Выделить всё

#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
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

вы бы тогда уж приводили полный текст ошибок, как компилятор их выдает... в вообще-то в Си If и if - 2 большие разницы!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
DIM4
Родился
Сообщения: 16
Зарегистрирован: Пн янв 21, 2008 20:21:02
Контактная информация:

Сообщение DIM4 »

Sounds писал(а):int main(void) { //Ошибка The “main” function must return


в CVAVR функция main должна иметь тип void тоесть void main(void)
Ответить

Вернуться в «AVR»