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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
ankrish
Опытный кот
Сообщения: 745
Зарегистрирован: Сб май 21, 2011 10:37:37
Откуда: Полоцк, Беларусь
Контактная информация:

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

Сообщение ankrish »

я прошиваю Atmega8, Сom port3 выбран в настройках и программатор тоже в cjm3
{АРХИТЕКТОР}
Аватара пользователя
ankrish
Опытный кот
Сообщения: 745
Зарегистрирован: Сб май 21, 2011 10:37:37
Откуда: Полоцк, Беларусь
Контактная информация:

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

Сообщение ankrish »

может, я, что-то не так делаю???
{АРХИТЕКТОР}
BerZerK-ku
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вт июл 22, 2008 08:10:54

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

Сообщение BerZerK-ku »

Чей-то не хочется мне делать программатор и ставить CV чтобы узнать так или нет :)
Попробуйте прошить из AVR Studio, увидит AVRprog ваш программатор или нет.
Аватара пользователя
ankrish
Опытный кот
Сообщения: 745
Зарегистрирован: Сб май 21, 2011 10:37:37
Откуда: Полоцк, Беларусь
Контактная информация:

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

Сообщение ankrish »

я уже столько пререпробывал...
я бы програмировал например родной программой, которая входила в комплект с драйверами, но там нету некоторых фьюзов, может есть решение?
программа Avr910Usb_Prog
{АРХИТЕКТОР}
Аватара пользователя
ankrish
Опытный кот
Сообщения: 745
Зарегистрирован: Сб май 21, 2011 10:37:37
Откуда: Полоцк, Беларусь
Контактная информация:

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

Сообщение ankrish »

усё здаюся... :facepalm: ...
программирование, видно- это не моё...
{АРХИТЕКТОР}
Patrick
Родился
Сообщения: 3
Зарегистрирован: Вс дек 11, 2011 19:55:57

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

Сообщение Patrick »

Фуух...Все, сам разобрался. Всем спасибо за моральную поддержку. :beer:
Аватара пользователя
totty
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Ср авг 03, 2011 22:26:02
Откуда: Севастополь

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

Сообщение totty »

Добрый вечер, подскажите как для CW будет звучать данная строчка?

while ((ADCSRA&_BV(ADIF))==0x00) //Дождатся окончания преобразования

заранее благодарен :)
речь идет об АЦП меги 8
BerZerK-ku
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вт июл 22, 2008 08:10:54

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

Сообщение BerZerK-ku »

Добавьте в начало файла или заголовочный файл такую строку:

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

#define _BV(a) (1 << a)
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

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

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

BerZerK-ku писал(а):Добавьте в начало файла или заголовочный файл такую строку:

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

#define _BV(a) (1 << a)
правильнее так:

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

#define _BV(a) (1 << (a))
битва с дураками проиграна, победители торжествуют. слава победителям!
BerZerK-ku
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вт июл 22, 2008 08:10:54

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

Сообщение BerZerK-ku »

:)) почему же правильнее? Чем работа дефайнов будет отличаться в приведенном примере?
Да и что надо туда пихать, чтобы понадобилась такая перестраховка ?!
ankrish писал(а):усё здаюся... :facepalm: ...
программирование, видно- это не моё...
Нашел макетку USB девайса, перекинул пару проводков, получил программатор. Поставил дрова, получил порт COM3. Запустил AVR Studio , в ней "Tools->AVR Prog..." заработало сразу )
Аватара пользователя
totty
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Ср авг 03, 2011 22:26:02
Откуда: Севастополь

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

Сообщение totty »

Спасибо, а вот если так while (ADCSRA.4==1)
вроде работает но правильно ли компилятор понимает такую запись?
в описании бит ADIF имеет 4 номер

#define _BV(a) (1 << a)


что это вообще значит (я про эту конструкцию _BV(a) (1 << a) ) ? установить бит в единицу?
BerZerK-ku
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вт июл 22, 2008 08:10:54

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

Сообщение BerZerK-ku »

ADIF это тоже дефайн.
Директива #define используется для подмены констант, строк и т.д.

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

#define _BV(a) (1 << a)
PORTB = _BV(4);
подменяется на такое выражение:

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

PORTB = (1 << 4)
, что равнозначно

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

PORTB = 0x10

Если ваш компилятор не ругается на подобную запись

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

ADCSRA.4==1
, то конечно можно.
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

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

Сообщение SubDia »

totty писал(а):что это вообще значит (я про эту конструкцию _BV(a) (1 << a) ) ? установить бит в единицу?

Да. Этот макрос, позаимствованный из WinAVR, устанавливает бит a в единицу. Точнее, макрос создает число с установленным битом a в единицу. Таким образом, можно производить установку или сброс с помощью битовых операций.

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

#define CLK 4       //PF4
#define DATA 5      //PF5
//----------
PORTF &= ~_BV(CLK);     //сбросить бит CLK (4-й бит) порта F
PORTF |= _BV(DATA);     //установить бит DATA (5-й бит) порта F
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Аватара пользователя
ankrish
Опытный кот
Сообщения: 745
Зарегистрирован: Сб май 21, 2011 10:37:37
Откуда: Полоцк, Беларусь
Контактная информация:

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

Сообщение ankrish »

BerZerK-ku , а можете описать вообще все ваши действия от начала до конца, начиня с открытия программы CodeVisionAVR ???
{АРХИТЕКТОР}
BerZerK-ku
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вт июл 22, 2008 08:10:54

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

Сообщение BerZerK-ku »

Можно, во-первых я его не устанавливал, а во-вторых не запускал :))
Проверял в AVR Studio.
Аватара пользователя
totty
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Ср авг 03, 2011 22:26:02
Откуда: Севастополь

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

Сообщение totty »

ADIF это тоже дефайн.

это не одно и тоже, ADIF это флаг регистра, указывающий что работа АЦП завершена :)

Всем спаибо за ответы :))
Аватара пользователя
ankrish
Опытный кот
Сообщения: 745
Зарегистрирован: Сб май 21, 2011 10:37:37
Откуда: Полоцк, Беларусь
Контактная информация:

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

Сообщение ankrish »

BerZerK-ku писал(а):Можно, во-первых я его не устанавливал, а во-вторых не запускал :))
Проверял в AVR Studio.

а ну да :)) ,
{АРХИТЕКТОР}
Аватара пользователя
SubDia
Держит паяльник хвостом
Сообщения: 995
Зарегистрирован: Сб апр 02, 2011 17:59:22
Откуда: Город-герой Севастополь

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

Сообщение SubDia »

totty писал(а):это не одно и тоже, ADIF это флаг регистра, указывающий что работа АЦП завершена

:))) :))) :)))
BerZerK-ku имел в виду, что биту под номером 4 было присвоено имя ADIF с помощью директивы #define.

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

#define ADIF 4

- для удобочитаемости кода. Если же мы не напишем в хидере вышеприведенной строки, то препроцессор просто пошлет нас гулять лесом вместе со своим ADIFом. =)
Причем даже если я установлю бит ADIF в любом регистре, совершенно не имеющем отношения к АЦП, то компилятор ко мне претензий иметь не будет никаких, и бит в нужный момент будет устанавливаться.
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )
Изображение
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

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

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

BerZerK-ku писал(а)::)) почему же правильнее? Чем работа дефайнов будет отличаться в приведенном примере?
как говорится, чтобы понять, почувствуйте разницу:

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

#define your_variant(x) (1<<x)
#define my_variant(x) (1<<(x))
int i = 2;
int your_result = your_variant(5+i);
int my_result = my_variant(5+i);
сравните оба результата
битва с дураками проиграна, победители торжествуют. слава победителям!
BerZerK-ku
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вт июл 22, 2008 08:10:54

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

Сообщение BerZerK-ku »

А вы проверяли результат перед тем как это написать? Может это вас удивит, но оба варианта дают один результат :))
Может сами догадаетесь почему?
Ответить

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