Страница 161 из 421
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вт дек 13, 2011 15:02:24
ankrish
я прошиваю Atmega8, Сom port3 выбран в настройках и программатор тоже в cjm3
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вт дек 13, 2011 15:10:53
ankrish
может, я, что-то не так делаю???
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вт дек 13, 2011 15:19:17
BerZerK-ku
Чей-то не хочется мне делать программатор и ставить CV чтобы узнать так или нет

Попробуйте прошить из AVR Studio, увидит AVRprog ваш программатор или нет.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вт дек 13, 2011 15:26:39
ankrish
я уже столько пререпробывал...
я бы програмировал например родной программой, которая входила в комплект с драйверами, но там нету некоторых фьюзов, может есть решение?
программа Avr910Usb_Prog
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вт дек 13, 2011 15:35:14
ankrish
усё здаюся...

...
программирование, видно- это не моё...
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вт дек 13, 2011 18:31:12
Patrick
Фуух...Все, сам разобрался. Всем спасибо за моральную поддержку.

Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср дек 14, 2011 01:04:44
totty
Добрый вечер, подскажите как для CW будет звучать данная строчка?
while ((ADCSRA&_BV(ADIF))==0x00) //Дождатся окончания преобразования
заранее благодарен

речь идет об АЦП меги 8
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср дек 14, 2011 05:22:37
BerZerK-ku
Добавьте в начало файла или заголовочный файл такую строку:
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср дек 14, 2011 07:18:26
Мастер Ломастер
BerZerK-ku писал(а):Добавьте в начало файла или заголовочный файл такую строку:
правильнее так:
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср дек 14, 2011 07:55:42
BerZerK-ku

почему же правильнее? Чем работа дефайнов будет отличаться в приведенном примере?
Да и что надо туда пихать, чтобы понадобилась такая перестраховка ?!
ankrish писал(а):усё здаюся...

...
программирование, видно- это не моё...
Нашел макетку USB девайса, перекинул пару проводков, получил программатор. Поставил дрова, получил порт COM3. Запустил AVR Studio , в ней "Tools->AVR Prog..." заработало сразу )
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср дек 14, 2011 17:13:28
totty
Спасибо, а вот если так while (ADCSRA.4==1)
вроде работает но правильно ли компилятор понимает такую запись?
в описании бит ADIF имеет 4 номер
#define _BV(a) (1 << a)
что это вообще значит (я про эту конструкцию _BV(a) (1 << a) ) ? установить бит в единицу?
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср дек 14, 2011 17:21:29
BerZerK-ku
ADIF это тоже дефайн.
Директива #define используется для подмены констант, строк и т.д.
подменяется на такое выражение:
, что равнозначно
Если ваш компилятор не ругается на подобную запись
, то конечно можно.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср дек 14, 2011 17:26:14
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
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср дек 14, 2011 17:53:28
ankrish
BerZerK-ku , а можете описать вообще все ваши действия от начала до конца, начиня с открытия программы CodeVisionAVR ???
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср дек 14, 2011 18:22:11
BerZerK-ku
Можно, во-первых я его не устанавливал, а во-вторых не запускал
Проверял в AVR Studio.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср дек 14, 2011 18:37:37
totty
ADIF это тоже дефайн.
это не одно и тоже, ADIF это флаг регистра, указывающий что работа АЦП завершена
Всем спаибо за ответы

Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср дек 14, 2011 18:40:01
ankrish
BerZerK-ku писал(а):Можно, во-первых я его не устанавливал, а во-вторых не запускал
Проверял в AVR Studio.
а ну да

,
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср дек 14, 2011 18:43:53
SubDia
totty писал(а):это не одно и тоже, ADIF это флаг регистра, указывающий что работа АЦП завершена
BerZerK-ku имел в виду, что биту под номером 4 было присвоено имя ADIF с помощью директивы #define.
- для удобочитаемости кода. Если же мы не напишем в хидере вышеприведенной строки, то препроцессор просто пошлет нас гулять лесом вместе со своим ADIFом. =)
Причем даже если я установлю бит ADIF в любом регистре, совершенно не имеющем отношения к АЦП, то компилятор ко мне претензий иметь не будет никаких, и бит в нужный момент будет устанавливаться.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср дек 14, 2011 18:52:25
Мастер Ломастер
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);
сравните оба результата
Re: CodeVision AVR в вопросах и ответах
Добавлено: Ср дек 14, 2011 19:03:59
BerZerK-ku
А вы проверяли результат перед тем как это написать? Может это вас удивит, но оба варианта дают один результат
Может сами догадаетесь почему?