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

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

Добавлено: Сб сен 15, 2012 21:04:08
Apparatchik
isx писал(а):Подскажите с таким вопросом: ....
Можно читать eeprom при старте и при выходе за какието пределы присваивать значение по умолчанию.
Можно создавать специальную прошивку, которая запишет данные в eeprom.
Можно писать eeprom "ручками".

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

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

И какой файл кидать в протеус чтобы отлаживать пошагово?obj?cof?

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

Добавлено: Сб сен 15, 2012 22:08:11
спящий
нашел косяк,но вопрос насчет отладки программы остался. :)))

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

Добавлено: Ср сен 19, 2012 18:55:18
Slavyan17
На внутр RC цепочку фьюзы на 8мгц так будут выглядеть?
Изображение

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

Добавлено: Ср сен 19, 2012 19:47:01
Slavyan17
Мне нужно выставить фьюзы на 8мгц внутр rc цепочка из этой статьи http://radiokot.ru/circuit/digital/automat/16/, дайте пожалуйста скрин

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

Добавлено: Ср сен 19, 2012 19:53:43
Apparatchik
Mega8 fuse int RC 8 MHz.jpg
(108.21 КБ) 353 скачивания

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

Добавлено: Ср сен 19, 2012 20:21:32
Slavyan17
спасибо

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

Добавлено: Ср сен 19, 2012 23:42:29
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 от микроэлектроники сразу бы ошибка вылетела.. а тут еще и все работает :)

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

Добавлено: Чт сен 20, 2012 13:18:30
vitalik_1984
Судя по коду у вас Мк больше ничем не занимается, потому что крутится в бесконечном цикле получения байта.
Если говорить о правильности получения, то всегда есть прерывание от UART и в нем нужно ловить эту переменную, но не в цикле.

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

Добавлено: Сб сен 22, 2012 14:48:43
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();

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

Добавлено: Сб сен 22, 2012 15:51:55
rs39
Директиву обрабатывает препроцессор, т.е. делает необходимые расчеты на этапе компиляции. А в прошивку уже загоняются обработанные(обсчитанные) данные. Можно это оформить и в виде функций, но тогда вся работа ляжет уже на контроллер. Спросите - а ему это надо? -делать лишнюю работу бесполезно затрачивая ресурсы :)

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

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

Если в макросе больше трех- четырех команд ассемблера и он повторяется больше двух-трех раз, лучше заменить его на функцию в целях экономии драгоценного места.

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

Добавлено: Сб сен 22, 2012 19:08:06
pokk
Благодарю за помощью понял.

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

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

или это?
UCSR0C= (0<<UMSEL01)|(0<<UMSEL00)|(0<<USBS0)|(1<<ucsz01) | (1<<ucsz00);
как проверить бит переменной или регистра?

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

Добавлено: Сб сен 22, 2012 23:06:48
vitalik_1984

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

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

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

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

 if (SPSR&SPIF){//делаем тут все что нужно, если бит не  0
};
//если ждем заполнения флага, то можно
while (!( SPSR&SPIF)); 
 

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

Добавлено: Сб сен 22, 2012 23:50:25
спящий
при написания SPIF и
UCSR0C= (0<<UMSEL01)|(0<<UMSEL00)|(0<<USBS0)|(1<<ucsz01) | (1<<ucsz00);
он мне выдает ошибку,мол такого нет,как исправить ,простые регистры такие как UCSR0C есть,а их битов нет.

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

Добавлено: Вс сен 23, 2012 01:11:30
vitalik_1984
нужно подключить хедер файл как в студии
#include <avr/io.h>
только его в папках код вижна нет.
или же просто биты заменить на цифры, правда потом будет плохо разбираться с кодом.
А еще в cvavr есть мастер кода, который позволяет не заморачиваться с запоминанием нужных бит и просто выставлять нужные параметры работы периферии.

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

Добавлено: Вс сен 23, 2012 01:55:06
спящий
скинте avr/io.h а то чет немогу найти

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

Добавлено: Вс сен 23, 2012 08:29:41
rs39
avr/io.h для CVAVR не подойдет.
Попробуйте, может это поможет (в аттаче)

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

Добавлено: Вс сен 23, 2012 08:57:10
U235
В свойствах проекта поставьте галочку у пункта "include I/O registers bits definitions"