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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
avreal
Опытный кот
Сообщения: 842
Зарегистрирован: Чт дек 31, 2009 19:27:45
Откуда: Бровари, Україна
Контактная информация:

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

Сообщение avreal »

vitalik_1984 писал(а):Вот сложность то написать PORTB вместо B, зато не привязаны к определенной области регистров.
Ну да, лет десять назад так и было (а лет так четырнадцать назад были bit_set, bit_clr). Вы на правильном пути :-)
Это очень классно, только не даёт написать

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

DRIVER(LED,OUT);  // Тут пишем в DDR
ON(LED);          // Тут пишем в PORT
TOGGLE(LED);      // Тут пишем в PIN
if (LATCH(LED))   // Тут читаем из DDR

DRIVER(KEY,IN);   // Тут пишем в DDR
DRIVER(KEY,HIZ);  // Тут пишем в PORT
if (ACTIVE(KEY))  // Тут читаем из PIN  
И как это всё делать, если будет

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

#define LED PORTB,1,H 
Назад в пучину LEDPORT, LEDDDR, LEDPIN, KEYPORT, KEYDDR, KEYPIN ?
Спасибо, наелся.

p.s. Не, ну это конкретный изврат и оскорбление -- писать code=php для С/С++ кода
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Реклама
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

А ну да об этом не подумал :oops: , значит нужно для остальных регистров доделать.

Я видел кстати в макросах сделано типа PORTB+1 вроде как они как раз по порядку в регистрах идут.

RE P.S. это просто ужас но приходится так писать...
В поисках истины человек развивается.
Реклама
Аватара пользователя
avreal
Опытный кот
Сообщения: 842
Зарегистрирован: Чт дек 31, 2009 19:27:45
Откуда: Бровари, Україна
Контактная информация:

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

Сообщение avreal »

vitalik_1984 писал(а):Я видел кстати в макросах сделано типа PORTB+1 вроде как они как раз по порядку в регистрах идут.
Почти у всех контроллеров. А у оставшихся — почти все порты.
Но вот у mega64(A)/128(A) регистры PORTF, DDRF находятся очень далеко от регистра PINF (а у меги103, на которой макросы уже работали, их вообще не было, порт F только входы).
Городить отдельную обработку для этих двух мег и по реальным адресам для порта F показалось неинтересным.
Если эти кристаллы отбросить, то можно и PIN, DDR=PIN+1, PORT=PIN+2 использовать.
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

Можно сделать иф деф и для этих мег просто этот вариант какой есть использовать.Или предупреждение что так писать не нужно,и как нужно.
В поисках истины человек развивается.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

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

Сообщение isx »

Добрый день... Ищу уже несколько часов пример использования EEPROM на ATmega8. Примеров полно, но не на СИ вCVAVAR. Ткните пожалуйста на таковой, можно без описания, думаю разберусь...
Реклама
Аватара пользователя
Apparatchik
Держит паяльник хвостом
Сообщения: 908
Зарегистрирован: Вс май 23, 2010 13:55:42
Откуда: Украина, Александрия

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

Сообщение Apparatchik »

В CVAVR

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

eeprom char x;
далее переменную x можно использовать как обычную.
«И всё-таки она вертится!»
Реклама
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

Есть отличная книга по описанию функций и работы с CVAVR.
вообще то несложно работать.
выше уже опередили и написали.
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

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

Сообщение isx »

Спасибо большое.... Ато намучался сёдня с поиском :)
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

Странно, я просто в поиске гугла ввел книга code vision AVR первая же ссылка на эту книгу.У меня такая же скачана.Ее я и хотел показать.
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

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

Сообщение isx »

Я искал просто пример реализации еепром в цвавре... А книжку скачал... читаю :)
Вот ещё вопрос... Пытался как то раз запустить AVR Studio, не не получилось, и забил я на него. Щас скачал 6-ю версию, поставил, открываю файл .cof, а он мне ошибку выкидывает "Could not create project associated with the object file that was opened for debugging. None of the available object file readers can read the specified object file. Please check the format of the object file". Я и переустанавливал раза 3 её уже.
В чём может быть проблема подскажите пожалуйста...
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

Попробуйте файлы сохранять с английскими путями.Вообще для симуляции используется студия 4.х где х не ниже версии, которая указывается при запуске симулятора(значек жучка на панели инструментов)
У меня 4.18 запускается нормально.
Могу попробовать в 6, но только не сегодня.
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

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

Сообщение isx »

Пробовать уже не надо.... Переименовал в английские буквы названия папок дирректории, и чё-то пошаманил. В итоге заработало, но что с ним делать пока не пойму, какие-то непонятные строки вылазят :))
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

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

Сообщение isx »

Подскажите с таким вопросом:
Всё флеш константы мы в прошивке определяем с самого начала, к примеру:
int der = 0;
При этом мы знаем, что в последующих операциях процесс пойдёт с нуля. А как быть с EEPROM? Если мы определим в прошивке определим так же, то прошивка сразу при старте будет затирать имеющееся число на 0 при инициализации? Я правильно понимаю?
И ещё одна не совсем раскрытая проблема. Была прошивка с константами во флеш. Переделал перед mаin-ом некоторые константы в EEPROM формата

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

eeprom int pogr_eep;
, и отсчёт начинается не с ноля, как положено, а то с 225, то с 65ХХХ . Грешу на то, что кроме добавления заголовка eeprom нужно что то ещё делать, чтоб оно заработало как надо....
a_skr
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

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

Сообщение a_skr »

при старте затирать ничего не будет.
1. нужно инициализировать переменную: eeprom int pogr_eep=0;
2. нужно прошить eeprom (файл с расширением .eep).

ps. и почему переменные константами зовете?
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

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

Сообщение isx »

Ясно... Спасибо большое!!! Щас попробую..
Блин, а вот насчёт переменных виноват, перепутал :oops:
И такой вопрос. А протеус с EEPROM вообще работает?
a_skr
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

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

Сообщение a_skr »

работает, только ему файл eeprom нужен в бинарном формате, а не в HEX, который CVAVR создает по умолчанию (не знаю, умеет ли он в другом)
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

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

Сообщение isx »

Указал к файлу .COF
Вроде заработал...
Davydov
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Чт авг 16, 2012 21:34:24

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

Сообщение Davydov »

Подскажите, на ногах 0-3 порта D висит дешифратор 4/16, на 4-6 сдвиговый регистр.
Можно ли записывать десятичное число на порт D 0-3 отдельно, а остальными ногами работать с регистром?
Если бы это было так, это бы еще ничего. Если бы ничего, то так бы оно и было. Но так как это не так, так оно и не эдак. Такова логика вещей. (с)
a_skr
Вымогатель припоя
Сообщения: 630
Зарегистрирован: Пн июн 14, 2010 13:07:29
Откуда: Жуковский

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

Сообщение a_skr »

можно. чтение-модификация-запись:
PORTD = (PORTD & 0xF0) | 'десятичное число для 0-3 бит'; // 0...15
PORTD = (PORTD & 0x8F) | ('десятичное число для 4-6 бит'<<4); // 0...7
можно по-битово: PORTD.1 = 'значение для бита 1';
TovsCat
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Пт апр 27, 2012 15:48:35

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

Сообщение TovsCat »

Этот пост был сгенерирован автоматически. Не нужно отвечать на это сообщение...
Ответить

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