Страница 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
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"