Страница 219 из 421

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

Добавлено: Вт сен 04, 2012 21:17:20
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 для С/С++ кода

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

Добавлено: Ср сен 05, 2012 00:32:13
vitalik_1984
А ну да об этом не подумал :oops: , значит нужно для остальных регистров доделать.

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

RE P.S. это просто ужас но приходится так писать...

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

Добавлено: Ср сен 05, 2012 09:03:21
avreal
vitalik_1984 писал(а):Я видел кстати в макросах сделано типа PORTB+1 вроде как они как раз по порядку в регистрах идут.
Почти у всех контроллеров. А у оставшихся — почти все порты.
Но вот у mega64(A)/128(A) регистры PORTF, DDRF находятся очень далеко от регистра PINF (а у меги103, на которой макросы уже работали, их вообще не было, порт F только входы).
Городить отдельную обработку для этих двух мег и по реальным адресам для порта F показалось неинтересным.
Если эти кристаллы отбросить, то можно и PIN, DDR=PIN+1, PORT=PIN+2 использовать.

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

Добавлено: Ср сен 05, 2012 14:29:47
vitalik_1984
Можно сделать иф деф и для этих мег просто этот вариант какой есть использовать.Или предупреждение что так писать не нужно,и как нужно.

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

Добавлено: Чт сен 13, 2012 09:35:33
isx
Добрый день... Ищу уже несколько часов пример использования EEPROM на ATmega8. Примеров полно, но не на СИ вCVAVAR. Ткните пожалуйста на таковой, можно без описания, думаю разберусь...

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

Добавлено: Чт сен 13, 2012 13:20:53
Apparatchik
В CVAVR

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

eeprom char x;
далее переменную x можно использовать как обычную.

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

Добавлено: Чт сен 13, 2012 13:36:00
vitalik_1984
Есть отличная книга по описанию функций и работы с CVAVR.
вообще то несложно работать.
выше уже опередили и написали.

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

Добавлено: Чт сен 13, 2012 16:22:46
isx
Спасибо большое.... Ато намучался сёдня с поиском :)

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

Добавлено: Чт сен 13, 2012 20:05:33
vitalik_1984
Странно, я просто в поиске гугла ввел книга code vision AVR первая же ссылка на эту книгу.У меня такая же скачана.Ее я и хотел показать.

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

Добавлено: Чт сен 13, 2012 21:52:36
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 её уже.
В чём может быть проблема подскажите пожалуйста...

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

Добавлено: Чт сен 13, 2012 22:21:51
vitalik_1984
Попробуйте файлы сохранять с английскими путями.Вообще для симуляции используется студия 4.х где х не ниже версии, которая указывается при запуске симулятора(значек жучка на панели инструментов)
У меня 4.18 запускается нормально.
Могу попробовать в 6, но только не сегодня.

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

Добавлено: Чт сен 13, 2012 23:56:07
isx
Пробовать уже не надо.... Переименовал в английские буквы названия папок дирректории, и чё-то пошаманил. В итоге заработало, но что с ним делать пока не пойму, какие-то непонятные строки вылазят :))

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

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

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

eeprom int pogr_eep;
, и отсчёт начинается не с ноля, как положено, а то с 225, то с 65ХХХ . Грешу на то, что кроме добавления заголовка eeprom нужно что то ещё делать, чтоб оно заработало как надо....

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

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

ps. и почему переменные константами зовете?

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

Добавлено: Сб сен 15, 2012 09:39:27
isx
Ясно... Спасибо большое!!! Щас попробую..
Блин, а вот насчёт переменных виноват, перепутал :oops:
И такой вопрос. А протеус с EEPROM вообще работает?

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

Добавлено: Сб сен 15, 2012 10:17:22
a_skr
работает, только ему файл eeprom нужен в бинарном формате, а не в HEX, который CVAVR создает по умолчанию (не знаю, умеет ли он в другом)

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

Добавлено: Сб сен 15, 2012 10:28:08
isx
Указал к файлу .COF
Вроде заработал...

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

Добавлено: Сб сен 15, 2012 12:37:50
Davydov
Подскажите, на ногах 0-3 порта D висит дешифратор 4/16, на 4-6 сдвиговый регистр.
Можно ли записывать десятичное число на порт D 0-3 отдельно, а остальными ногами работать с регистром?

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

Добавлено: Сб сен 15, 2012 17:22:13
a_skr
можно. чтение-модификация-запись:
PORTD = (PORTD & 0xF0) | 'десятичное число для 0-3 бит'; // 0...15
PORTD = (PORTD & 0x8F) | ('десятичное число для 4-6 бит'<<4); // 0...7
можно по-битово: PORTD.1 = 'значение для бита 1';

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

Добавлено: Сб сен 15, 2012 17:54:49
TovsCat
Этот пост был сгенерирован автоматически. Не нужно отвечать на это сообщение...