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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
DataLife
Вымогатель припоя
Сообщения: 601
Зарегистрирован: Пт фев 13, 2009 20:58:13
Откуда: Донецк

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

Сообщение DataLife »

Может, конечно, но дело уже на принцип пошло.
Растолкуйте на пальцах, пожалуйста (только без среднего).
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

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

Сообщение ValBag »

DataLife
Поставьте внутреннюю подтяжку: PORTB.3=1;
ukw13
Родился
Сообщения: 2
Зарегистрирован: Вс июн 05, 2011 16:29:52

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

Сообщение ukw13 »

DataLife писал(а):Тыкните меня носом в то место, где я не так делаю?

PINB.3=1; - до начала программы, что бы дальнейший цикл не начался раньше времени, подаю на пинБ.3 лог_1.
PORTB=0x00; - все ноги на "выходе", вроде бы как...

Расталкуйте, что тут имеется в виду под подтяжкой? Я что-то запутался.

Голова кругом... не моё это программирование...
SOS! :idea:


Неплохо бы конечно почитать про устройство портов для начала, а то ШИМ, понимаешь..
PINB.3=1; - до начала программы, что бы дальнейший цикл не начался раньше времени, подаю на пинБ.3 лог_1.

Как физически выглядит ваше устройство? Вы можете записывать в ПИНБ.3 все что угодно, но при последующей проверке в цикле значение этого ПИНБ.3 будет определяться уровнями напряжений на нем. Сейчас у вас ПОРТБ.3 в воздухе болтается, вот

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

PORTB=0x00;
DDRB=0x03;
Значит что? А то что состояние Пина непредсказуемо, может быть как единицей, так и нулем в зависимости от погоды и мощности ближайшей радиостанции. Переведите в биты и увидьте что это означает что третий пин порта является входом без подтяжки. Подтяжка - в данном случае имеется ввиду подключение (внутри микроконтроллера) источника питания к выводу порта через некое большое (10К - 100К) сопротивление. Для того чтобы включить подтяжку в режиме работы Пина на вход (у вас DDRB=0x03;, соответственно 0 и 1 пины выход, а 3 и все остальные вход) необходимо записать в соответствующий(третий) Пин порта единицу, PORTB.3=1; Когда подтяжка включена на Пин порта, Пин порта является входом, и если больше ничего к этому Пину не подключено(а если и подключено) то по закону Ома можете прикинуть какой логический уровень будет в Пин? Единица будет.
demiurg301
Опытный кот
Сообщения: 812
Зарегистрирован: Ср мар 18, 2009 21:14:33

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

Сообщение demiurg301 »

Подскажите пжлст какая реальная скорость программного i2c в CVAVR. Где то читал что можно её увеличить путём уменьшения задержек в скомпиленно коде - мож кто поделится опытом ? - а то я c ASMoм на вы!!!
aleksandr88
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Ср июн 08, 2011 11:32:49

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

Сообщение aleksandr88 »

Подскажите почему вылетает ошибка при определении порта и бита для датчика ds18b20
#asm
.equ __w1_port=0x15; PORTC
.equ __w1_bit=3
#endasm
ОШИБКА "Error(s) occured assembly" появляется вкладка библиотеки 1asm и в ней указывается на строки
.equ __w1_port=0x1B
.equ __w1_bit=0x00
если подключаю к этому порту и биту все фу рычит а другой назначить не могу
библиотека <1wire.h> подключена :cry:
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

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

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

Так напиши там, куда указывает ошибка, то же, что и до этого написал.
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
aleksandr88
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Ср июн 08, 2011 11:32:49

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

Сообщение aleksandr88 »

я прописываю но после компиляции все значение в 1.asm скидываются на прежние значение .вот скрин
Вложения
123.JPG
1
(59.09 КБ) 318 скачиваний
Последний раз редактировалось aleksandr88 Ср июн 08, 2011 12:32:08, всего редактировалось 1 раз.
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

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

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

Скрин не видать. Какие вообще библиотеки подключены?
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
aleksandr88
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Ср июн 08, 2011 11:32:49

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

Сообщение aleksandr88 »

да скрин не хочет грузится(
библиотеки 1wire,delay.h,ds18b20.h,lcd.h,stdio.h и проект подключил автоматом mega16_bits.h,stdarg.h
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

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

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

Если можно дайте пожалуйста код на Си.
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
aleksandr88
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Ср июн 08, 2011 11:32:49

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

Сообщение aleksandr88 »

вот код держите
Вложения
1.txt
(2.02 КБ) 286 скачиваний
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

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

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

Посмотрел, вроде всё правильно... Извините за наглость, но потребовался проект. Попробую скомпилировать.
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
aleksandr88
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Ср июн 08, 2011 11:32:49

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

Сообщение aleksandr88 »

уф )))) все разрешилось методом научного тыка ))) я ассемблерную вставку просто перенес в самый верх программы
и заработало все. Спасибо вам *Trigger* за оперативность ответа и желание помочь не думал что кто то сразу откликаться на мой вопрос )еще раз спасибо!!!
Аватара пользователя
demonchik
Встал на лапы
Сообщения: 94
Зарегистрирован: Вт апр 07, 2009 13:39:13
Откуда: одесса
Контактная информация:

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

Сообщение demonchik »

КОТЫ!! привет!!! возник вопрос, но поиск по теме ничего не находит, вот я его и задам... есть необходимость передавать в функцию массив по указателю. ДА!!! плевое дело!!! но с передачей строки. а вот с передачей двумерного массива по ссылке уже стало проблемой. пишет что Error: 2.c(68): function argument #1 of type 'unsigned char [10][8]' is incompatible with required parameter of type 'unsigned char *'. как сделать чтоб понял кодвижен. тут есть наверно отступление от стандартов, свойственных данной среде?
радиоэлектроника - жизнь моя...
Аватара пользователя
IfoR
Поставщик валерьянки для Кота
Сообщения: 2029
Зарегистрирован: Сб ноя 15, 2008 10:09:56
Откуда: г. Тула
Контактная информация:

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

Сообщение IfoR »

Ну динамический массив описывается как указатель на блок указателей на блок элементов. В таком случае в функцию достаточно было бы вписать параметр

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

unsigned char **X
. Здесь проблем никаких не будет.
Но у вас используется статический массив, который представляется как указатель на одномерный массив, а обращение к элементу осуществляется с помощью высчитывания смещения, учитывая заданные границы массива.
Отсюда вывод: обращаться к матрице так, как вы обращаетесь технически можно, но компилятор вам не даёт это сделать по этическим соображениям. :)
Например, можно так:

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

char M[10][10];

void func(char *X)
{
}

int main()
{
 func( (char *)M ):

 return 0;
}

Или так:

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

char M[10][10];

void func(void *X)
{
}

int main()
{
 func( M ):

 return 0;
}

Однако, здесь возникает проблема: А как, не зная размеры матрицы, высчитать смещение? Тогда придется передать функции ещё и размер матрицы и вручную вычислять смещение.
По этому в параметре функции, в общем случае, придётся объявлять опять же статический массив:

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

char M[10][10];

void func(char X[10][10])
{
}

int main()
{
 func( M ):

 return 0;
}


К слову, первое число в объявлении не обязательно, т.к. оно не участвует в формировании смещения:

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

void func(char X[][10])


Ну а далее по ситуации.

P.S. да, стати, по ссылке массив передавать, ну скажем так, не имеет смысла, т.к. сама конструкция массива уже подразумевает присутствие указателя на этот массив. По этому вычислять ещё один указатель (который будет указывать на указатель на массив) для передачи по ссылке...
Изображение
/dev/urandom - гигабайты информации.

OS: openSUSE 13.2 (x86_64)
Аватара пользователя
demonchik
Встал на лапы
Сообщения: 94
Зарегистрирован: Вт апр 07, 2009 13:39:13
Откуда: одесса
Контактная информация:

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

Сообщение demonchik »

IfoR, спасиб за вразумительное обьяснение!!! понял. :tea: буду идти дальше. вот примонтировал карточку к контроллеру, перенес дисплей на програмный SPI, теперь думаю писать что-то вроде файлового менеджера. СПАСИБ ОГРОМНОЕ ЗА ПОМОЩЬ, IfoR, и всем остальным также, откликавшимся ранее!!!
радиоэлектроника - жизнь моя...
Аватара пользователя
boobonick
Встал на лапы
Сообщения: 123
Зарегистрирован: Сб ноя 18, 2006 17:14:15

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

Сообщение boobonick »

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

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

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

Правой клавишей -> Copy.
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Аватара пользователя
boobonick
Встал на лапы
Сообщения: 123
Зарегистрирован: Сб ноя 18, 2006 17:14:15

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

Сообщение boobonick »

Наверное не там смотрю))
Вложения
123.JPG
(138.54 КБ) 434 скачивания
Аватара пользователя
*Trigger*
Друг Кота
Сообщения: 3059
Зарегистрирован: Пн май 11, 2009 14:15:00
Откуда: СПб

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

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

Надо снизе нажимать. В поле Messages.
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Ответить

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