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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Apparatchik
Держит паяльник хвостом
Сообщения: 908
Зарегистрирован: Вс май 23, 2010 13:55:42
Откуда: Украина, Александрия

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

Сообщение Apparatchik »

isx писал(а):Подскажите с таким вопросом: ....
Можно читать eeprom при старте и при выходе за какието пределы присваивать значение по умолчанию.
Можно создавать специальную прошивку, которая запишет данные в eeprom.
Можно писать eeprom "ручками".
«И всё-таки она вертится!»
Реклама
спящий
Потрогал лапой паяльник
Сообщения: 303
Зарегистрирован: Сб янв 08, 2011 13:48:41

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

Сообщение спящий »

Скажите что за ошибка и как ее исправить:
//прерывание CTC
TCCR1A=0;
TCCR1B=0x0A;
TIMSK1=(1<<1)//
OCR1AH=0x00;ошибка value of tip 'usenger tint'
OCR1AL=0x25;
TCNT1H=0x00;
TCNT1L=0x00;

И какой файл кидать в протеус чтобы отлаживать пошагово?obj?cof?
Вложения
Безымянный.GIF
(65.25 КБ) 334 скачивания
Реклама
спящий
Потрогал лапой паяльник
Сообщения: 303
Зарегистрирован: Сб янв 08, 2011 13:48:41

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

Сообщение спящий »

нашел косяк,но вопрос насчет отладки программы остался. :)))
Аватара пользователя
Slavyan17
Опытный кот
Сообщения: 784
Зарегистрирован: Вс май 09, 2010 19:14:50
Откуда: Кемеровская обл. Новокузнецкий район

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

Сообщение Slavyan17 »

На внутр RC цепочку фьюзы на 8мгц так будут выглядеть?
Изображение
Вложения
Безымянный.jpg
(60.75 КБ) 892 скачивания
Ценности у всех в разлет, у нас все абсолютно ясно,
К родине любовь горит огнем, за годы не погасла.
Людское не отнять, а правильным живем роднее
Тело крепкое хранит нутро, а душу верой греем.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Slavyan17
Опытный кот
Сообщения: 784
Зарегистрирован: Вс май 09, 2010 19:14:50
Откуда: Кемеровская обл. Новокузнецкий район

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

Сообщение Slavyan17 »

Мне нужно выставить фьюзы на 8мгц внутр rc цепочка из этой статьи http://radiokot.ru/circuit/digital/automat/16/, дайте пожалуйста скрин
Ценности у всех в разлет, у нас все абсолютно ясно,
К родине любовь горит огнем, за годы не погасла.
Людское не отнять, а правильным живем роднее
Тело крепкое хранит нутро, а душу верой греем.
Реклама
Аватара пользователя
Apparatchik
Держит паяльник хвостом
Сообщения: 908
Зарегистрирован: Вс май 23, 2010 13:55:42
Откуда: Украина, Александрия

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

Сообщение Apparatchik »

Mega8 fuse int RC 8 MHz.jpg
(108.21 КБ) 348 скачиваний
«И всё-таки она вертится!»
Реклама
Аватара пользователя
Slavyan17
Опытный кот
Сообщения: 784
Зарегистрирован: Вс май 09, 2010 19:14:50
Откуда: Кемеровская обл. Новокузнецкий район

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

Сообщение Slavyan17 »

спасибо
Ценности у всех в разлет, у нас все абсолютно ясно,
К родине любовь горит огнем, за годы не погасла.
Людское не отнять, а правильным живем роднее
Тело крепкое хранит нутро, а душу верой греем.
Аватара пользователя
servo
Встал на лапы
Сообщения: 88
Зарегистрирован: Вс окт 30, 2011 22:52:51

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

Сообщение servo »

Привет Всем !

Как правильно можно отследить поступление байта в uart?
надо считать в буфер последовательность из 16 байт, но в случае если принятое значение совпадет со значением k оно пропускается.
как бы сделать чтобы от 0 до 255 можно было значение принять :)

я делаю так:

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

for(i=0;i<16;i++)
{ 
   do
     {
        k=getchar();
     }while(k==255); //Ждем пока не поменяется k
   buf[i]=k;
   k=255; 
}
----------------
Ну вроде решил все сам, объявил k вместо char как int на проверку поставил значение большее чем 255.. странно но буфер без проблем принимает iteger значения buf.. попробовал бы я сделать тоже самое на mikro c от микроэлектроники сразу бы ошибка вылетела.. а тут еще и все работает :)
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

Судя по коду у вас Мк больше ничем не занимается, потому что крутится в бесконечном цикле получения байта.
Если говорить о правильности получения, то всегда есть прерывание от UART и в нем нужно ловить эту переменную, но не в цикле.
pokk
Вымогатель припоя
Сообщения: 574
Зарегистрирован: Вт ноя 02, 2010 17:46:37

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

Сообщение pokk »

не могу понять чем отличается директива #define от функций
вот к примеру есть макрокоманда если её оформить в виде функции в чём отличие будет ?
Понимаю что там можно обозвать выводы МК как надо там кнопки и тд но в данном случае он просто по порядку выполнит ?

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

#define OFF_USART() UCSRB=(1<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (1<<RXEN) | (1<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8); 
#define ON_USART() UCSRB=(1<<RXCIE) | (0<<TXCIE) | (1<<UDRIE) | (1<<RXEN) | (1<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);
#define SEND_USART(data) ON_USART();UDR=data;OFF_USART();
Аватара пользователя
rs39
Открыл глаза
Сообщения: 53
Зарегистрирован: Сб май 07, 2011 14:35:24
Откуда: Россия

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

Сообщение rs39 »

Директиву обрабатывает препроцессор, т.е. делает необходимые расчеты на этапе компиляции. А в прошивку уже загоняются обработанные(обсчитанные) данные. Можно это оформить и в виде функций, но тогда вся работа ляжет уже на контроллер. Спросите - а ему это надо? -делать лишнюю работу бесполезно затрачивая ресурсы :)
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

Дело не только в обработке директивы или еще чего либо.
А так же в том, что эти ваши дефайны вставятся в текст программы как они есть, то есть все что после имени выставляется в текст программы и если там будет 30 команд, то все эти команды будут записаны во флеш особенно это заметно при сборке без оптимизации.Но времени затратит значительно меньше, так как на переход к выполнению функции контроллер тратит такты.

Если в макросе больше трех- четырех команд ассемблера и он повторяется больше двух-трех раз, лучше заменить его на функцию в целях экономии драгоценного места.
pokk
Вымогатель припоя
Сообщения: 574
Зарегистрирован: Вт ноя 02, 2010 17:46:37

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

Сообщение pokk »

Благодарю за помощью понял.
спящий
Потрогал лапой паяльник
Сообщения: 303
Зарегистрирован: Сб янв 08, 2011 13:48:41

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

Сообщение спящий »

Подскажите в КОДЕВИСИОН есть маски байтов?и как их писать?допутим SPI,как написатьчтобы ждать окончание передачи ?
на асме так:
cikl: ;
in temp,SPSR;
sbrs temp,SPIF;
rjmp cikl;
как написать?если он неопределяет SPIF?

или это?
UCSR0C= (0<<UMSEL01)|(0<<UMSEL00)|(0<<USBS0)|(1<<ucsz01) | (1<<ucsz00);
как проверить бит переменной или регистра?
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

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

UCSR0C= (0<<UMSEL01)|(0<<UMSEL00)|(0<<USBS0)|(1<<ucsz01) | (1<<ucsz00); 
 
Это- установка регистров в соответствии с правилами сдвига и побитового или.Как правило компилятором на этапе сборки вычисляется значение и в программу константа сразу записывается.

Как проверить бит?очень просто

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

 if (SPSR&SPIF){//делаем тут все что нужно, если бит не  0
};
//если ждем заполнения флага, то можно
while (!( SPSR&SPIF)); 
 
спящий
Потрогал лапой паяльник
Сообщения: 303
Зарегистрирован: Сб янв 08, 2011 13:48:41

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

Сообщение спящий »

при написания SPIF и
UCSR0C= (0<<UMSEL01)|(0<<UMSEL00)|(0<<USBS0)|(1<<ucsz01) | (1<<ucsz00);
он мне выдает ошибку,мол такого нет,как исправить ,простые регистры такие как UCSR0C есть,а их битов нет.
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

нужно подключить хедер файл как в студии
#include <avr/io.h>
только его в папках код вижна нет.
или же просто биты заменить на цифры, правда потом будет плохо разбираться с кодом.
А еще в cvavr есть мастер кода, который позволяет не заморачиваться с запоминанием нужных бит и просто выставлять нужные параметры работы периферии.
Последний раз редактировалось vitalik_1984 Вс сен 23, 2012 19:12:27, всего редактировалось 1 раз.
спящий
Потрогал лапой паяльник
Сообщения: 303
Зарегистрирован: Сб янв 08, 2011 13:48:41

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

Сообщение спящий »

скинте avr/io.h а то чет немогу найти
Аватара пользователя
rs39
Открыл глаза
Сообщения: 53
Зарегистрирован: Сб май 07, 2011 14:35:24
Откуда: Россия

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

Сообщение rs39 »

avr/io.h для CVAVR не подойдет.
Попробуйте, может это поможет (в аттаче)
Вложения
m8_128.zip
(6.01 КБ) 151 скачивание
Аватара пользователя
U235
Встал на лапы
Сообщения: 135
Зарегистрирован: Вт фев 21, 2012 20:42:26
Откуда: Санкт-Петербург, Россия, Земля

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

Сообщение U235 »

В свойствах проекта поставьте галочку у пункта "include I/O registers bits definitions"
Вложения
2012-09-23_095102.png
(29.89 КБ) 662 скачивания
А из наших труб идет необычный дым. Стой! Опасная зона! Работа мозга!...
Ответить

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