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

Обсуждаем контроллеры компании Atmel.
master3763
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Сб дек 10, 2011 17:45:25
Контактная информация:

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

Сообщение master3763 »

Эти строки уже назначены лапки. Вы их пытаетесь переназначить. О чем честно говорит компилятор.


Я пробовал и без нофигурации. Результат тотже самый...

Может у меня версия Codevision не та ??
master3763
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Сб дек 10, 2011 17:45:25
Контактная информация:

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

Сообщение master3763 »

Нашел одну ошибку.

Надо было так поставить.
while (devices>0)

Хотя всеравно в протеусе не реагирует...
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

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

Сообщение pyzhman »

Это не ошибка.
Docendo discimus
master3763
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Сб дек 10, 2011 17:45:25
Контактная информация:

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

Сообщение master3763 »

Да но без этого выводит :
Warning:........: local variable 'devices' was set, but not used
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

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

Сообщение *Trigger* »

Это не ошибка, а предупреждение: переменная объявлена, но не используется.
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
master3763
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Сб дек 10, 2011 17:45:25
Контактная информация:

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

Сообщение master3763 »

Я понемаю. Я ее назвал ошибкой... )
Объясните пожалуйста как правильно сконфигурировать чтобы программа компилировалась и работала в proteus ?
Mr.Denis
Прорезались зубы
Сообщения: 220
Зарегистрирован: Пт авг 07, 2009 22:06:49
Откуда: Россия, Москва

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

Сообщение Mr.Denis »

Всем привет!
Подскажите как мне в ком порт отправить команду 4F?
Если я отправлю так UDR=4f; она пройдет?
STM32F4 Discovery + KEIL + Windows 7
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

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

Сообщение pyzhman »

Если предварительно настроен блок USART, то пройдет. Даташиты это не про нас?

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

void USART_Transmit( unsigned char data )
{
/* Wait for empty transmit buffer */
while ( !( UCSRA & (1<<UDRE)) )
;
/* Put data into buffer, sends the data */
UDR = data;
}
Docendo discimus
Аватара пользователя
Volgol_555
Потрогал лапой паяльник
Сообщения: 301
Зарегистрирован: Пт сен 23, 2011 13:13:51
Откуда: Минск
Контактная информация:

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

Сообщение Volgol_555 »

Всем привет. Вопрос не по CV, а по Си. Плохо разбираюсь в "байтных" операциях, поэтому:
что означает вот эта строчка:
PORTB = 0x00;
PORTB |= (1 << PB1);
Я вижу поразрядный сдвиг влево и поразрядное "или". Но...что мы сдвигаем, если в порту B все "0" и соответственно с "или" получим тоже все 0?
Помогите разобраться пожалуйста с этой логикой(
Самое гениальное - всегда самое простое
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

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

Сообщение *Trigger* »

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

PORTB |= (1 << PB1);

Это то же самое, что и

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

PORTB =PORTB|(1 << PB1);


Только не понятно, что значит PB1. В CVAVR такого нет. Есть PORTB.1 и PINB.1. Или это переменная?
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Аватара пользователя
Volgol_555
Потрогал лапой паяльник
Сообщения: 301
Зарегистрирован: Пт сен 23, 2011 13:13:51
Откуда: Минск
Контактная информация:

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

Сообщение Volgol_555 »

Возможно это код с WinAvr я тоже не совсем понимаю(. Я пока переписал на PORTB.1.
PORTB =PORTB|(1 << PB1); Но не понятно что здесь будет реально происходить, если в на всех B стоят логические 0!
Самое гениальное - всегда самое простое
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

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

Сообщение *Trigger* »

Там должно быть PINB.1.
Тогда смысл уже есть. Записываем нули, если сигнал поступил на ногу PB1, то в PORTB будет 00000010, если нет, то 00000001
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Аватара пользователя
Volgol_555
Потрогал лапой паяльник
Сообщения: 301
Зарегистрирован: Пт сен 23, 2011 13:13:51
Откуда: Минск
Контактная информация:

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

Сообщение Volgol_555 »

ок. Спасибо, теперь уже вижу некоторый смысл. Остальное додумаю сам)
Самое гениальное - всегда самое простое
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

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

Сообщение *Trigger* »

Даже с PORTB.1 смысл есть, 1 сдвинуть на 0 влево - будет 1. 1<<0=1
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Аватара пользователя
Volgol_555
Потрогал лапой паяльник
Сообщения: 301
Зарегистрирован: Пт сен 23, 2011 13:13:51
Откуда: Минск
Контактная информация:

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

Сообщение Volgol_555 »

Порт B1, B2 и B3 - это ноги RGB светодиода. Я привел одну из трех таких же строчек!
Но не связывается то, что в портах B все 0.
Что сдвигать, если туда 1 вообще никак не заноситься, кроме вот этой строчки?
Самое гениальное - всегда самое простое
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

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

Сообщение *Trigger* »

PB1 - это определено в начале программы как #define?
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Аватара пользователя
Volgol_555
Потрогал лапой паяльник
Сообщения: 301
Зарегистрирован: Пт сен 23, 2011 13:13:51
Откуда: Минск
Контактная информация:

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

Сообщение Volgol_555 »

нет. Я же говорю это обращение к порту, что оно значит, я так и не понял. Логично что PORTB.1 потому, что нужно подавать ШИМ на B.1
Самое гениальное - всегда самое простое
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

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

Сообщение *Trigger* »

Из PORTx ничего не прочитать, там всегда нули. Читать можно только из PINx. В данном случае PB1 - число, на которое нужно сдвинуть единицу. Эта строчка может выставить единицу на любом выводе PB.
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

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

Сообщение Мастер Ломастер »

использование CVAVR отупляет! не применяйте его долго - эффект может быть необратимым!

самая тривиальная конструкция языка Си по установке одного бита в 1 в переменной у вас вызывает ступор! что такое PB1 не понятно? может, посмотрите в даташит, и увидите, что это НОМЕР бита в регистре?! а что касается того, что происходит - учите Си, и не пользуйтесь всякими кодогенераторами типа CVAVR. знаия придут, растерянность исчезнет.
битва с дураками проиграна, победители торжествуют. слава победителям!
Аватара пользователя
BCluster
Собутыльник Кота
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев
Контактная информация:

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

Сообщение BCluster »

Mr.Denis писал(а):Всем привет!
Подскажите как мне в ком порт отправить команду 4F?
Если я отправлю так UDR=4f; она пройдет?

Может и пройдет, но что именно туда пройдет я не знаю :)
UDR = 0x4F;
надо указать что число это хекс.
Ответить

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