Страница 23 из 421

Добавлено: Сб ноя 01, 2008 09:48:45
Степаныч
Здравствуйте! Собрал тут я часы на LCD, и хотел бы задать вопрос почему в программе(приложил файлы) нормально не работают прерывания??Я думаю из-за дребезга но тогда вопрос как его устранить в asm -e то знаю как а тут вот не понятно??Программа элементарная, знаний в CVAVR да и в СИ в целом немного поэтому просьба за огрехи не кидаться камнями :) ! Приложил проект в CVAVR и файлы Proteus! Не удивляйтесь что временные задержки делал через Deley а не через прерывания по таймеру, точность мне пока не нужна.

Добавлено: Сб ноя 01, 2008 10:02:05
tych
Степаныч писал(а): не работают прерывания ?? Я думаю из-за дребезга но тогда вопрос как его устранить в CVAVR
А вы в симуляторе проверьте - в нем нет дребезга и видно что в регистрах МК находится - вот и узнаете почему прерывания не работают. Проверьте выполнены ли условия для работы прерываний - "Прерывания в AVR" это стр. 3 в моей домашней.

Добавлено: Сб ноя 01, 2008 10:10:18
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" - это внешние прерывания, а у вас их нет. Только внутренние.

Добавлено: Сб ноя 01, 2008 10:33:15
tych
Igor_67 писал(а):Только внутренние.
Это какие же ?

Добавлено: Сб ноя 01, 2008 10:39:00
Igor_67
Упс! :)) Виноват! Уже никакие!

А скажите плз, у кого нить есть пилюлька для CVAVR 2.03.8?

Добавлено: Сб ноя 01, 2008 10:44:34
tych
Igor_67 писал(а): у кого нить есть пилюлька для CVAVR 2.03.8?
Врядли. У меня в домашней только на CVAVR 2.03.4

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

Добавлено: Сб ноя 01, 2008 10:49:25
Igor_67
tych писал(а):
Igor_67 писал(а): у кого нить есть пилюлька для CVAVR 2.03.8?
Врядли. У меня в домашней только на CVAVR 2.03.4

Но я рекомендую использовать CVAVR 1.29.5
А почему его? Он с XMega умеет работать? Если не трудно дайте ссылку пожалуйста. И таблетку от жадности хотелось бы :)))

Добавлено: Сб ноя 01, 2008 12:39:17
Igor_67
Поставил себе CVAVR 2.03.4 ВЕСЧЬ!!! Но всё же некоторых распространённых либов нету. Опять же придётся свои писать или брать где то :(

Добавлено: Сб ноя 01, 2008 14:46:14
tych
Igor_67 писал(а):
tych писал(а): я рекомендую использовать CVAVR 1.29.5
Он с XMega умеет работать?
Нет.
Igor_67 писал(а):Если не трудно дайте ссылку пожалуйста. И таблетку от жадности хотелось бы :)))
все в начале моей домашней странички.

Добавлено: Пт ноя 07, 2008 19:07:49
igor727
Подскажите что означают директивы препроцесора - #pragma used+(-)
- #pragma asm_function+ (-),
в хелпе не смог найти.

Добавлено: Пт ноя 14, 2008 18:32:53
Iptash
tych писал(а):
Igor_67 писал(а): Он с XMega умеет работать?
Нет.
Igor_67 писал(а):Если не трудно дайте ссылку пожалуйста. И таблетку от жадности хотелось бы :)))
все в начале моей домашней странички.
Что-то я не могу скачать CVAVR 1.29.5, рапида пишет ERROR...

Добавлено: Пт ноя 21, 2008 19:12:18
slesar
Кто-нибудь знает как обновить базу микроконтроллеров CVAVR?Нужно прошить ATmegа 1280.

Добавлено: Пт ноя 21, 2008 20:12:50
Aheir
Самое простое - переставить свежую версию.

Добавлено: Чт ноя 27, 2008 16:22:26
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 проводках.

Добавлено: Чт ноя 27, 2008 16:27:35
delay
Такое впечатление, что вы не загрузили саму прошивку в File - Load Flash, а пытаетесь прошить тем, чего нет, возможно предполагая, что прошивка пропишется автоматически из проекта. Кроме того если вам не нужно писать EEPROM, то приписываейте командой Program - FLASH.

Добавлено: Чт ноя 27, 2008 16:51:46
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;} // тут третья ошибка
   };
}  // тут четвёртая ошибка

Добавлено: Чт ноя 27, 2008 19:28:17
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ая ошибка - что в ней? вроде количество "открытий"/"закрытий" совпадает.

Добавлено: Чт ноя 27, 2008 20:37:37
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
Что это значит? Помогите пожалуйста!

Добавлено: Чт ноя 27, 2008 21:11:11
ARV
вы бы тогда уж приводили полный текст ошибок, как компилятор их выдает... в вообще-то в Си If и if - 2 большие разницы!

Добавлено: Чт ноя 27, 2008 22:29:30
DIM4
Sounds писал(а): int main(void) { //Ошибка The “main” function must return
в CVAVR функция main должна иметь тип void тоесть void main(void)