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

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

Добавлено: Пт май 06, 2011 19:14:10
clawham
дело не в меге или ещё чёмто мегу если и брать то 168 ибо 16 мега больно жирная и большая...да и смысл? мн ечисто спортивный интерес...так то всё влезло и ещё 2 процента свободно
просто хочется узнать можно ли как-то ещё!
а я вот влоаты ненавижу...попробуйте к числу 1600000000 прибавить 1 хоть 1000 раз прибавлять будете толку от этого будет НОЛЬ!
но в то же время лонгинта мне уже как бы тоже мало...в притык я бы сказал...потому и хочу узнать есть ли резервы освободить флеш текстом(Еепрома то внутренняя имеется ничо не надо подключать....)
чтоб написать свои процедуры работы с 64 битными интами
П.С. А вы мой проект видели?
Там и кварц и ног хватило и входы и прерывания и экран 44780 разместился свободно и ещё свободных осталось ног...
П.С. 1wire 1 ногу отберет а код для одного устройства вообще мизерно места занимает!!!

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

Добавлено: Сб май 07, 2011 17:07:15
rs39
Здравствуйте! Помогите новичку в CVAVR.
Совсем моск сломал в голове каша.
Вопрос по передаче из UART на COM порт.
На примере термометра и 2-х DS18b20 делаю все работает ок, терминалом в пк принимаю построчно:
temp 1: 27'C
temp 2: 23'C
и так по кругу.
Если правильно понимаю то код на COM передается в аксии. А мне нужно в последствии передать это на другое приемное устройство не на пк, и не в аксии а в байтах. Причем символы алфавита отсечь а передать только номер датчика и значение температуры.
Как это сделать никак невразумлю. Нужны ли дополнительные преобразования и какие?

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

Добавлено: Сб май 07, 2011 17:27:45
hd44780
rs39 писал(а):Как это сделать никак невразумлю. Нужны ли дополнительные преобразования и какие?
Ну как-то так.

шлёшь 3 байта на датчик:
1-й байт - номер датчика
2,3 байты - температура, умноженная на 10 (чтоб десятые были и не возиться с плав. точкой). В порядке младший-старший. Или наоборот - всё равно.

Сколько датчиков столько таких 3-х байтовых посылок.
Я что-то родственное делал лет 6-7 назад. Работало идеально :)) .
Правда датчик был один, но это непринципиально.

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

Добавлено: Вс май 08, 2011 21:21:19
Волосатый
Помогите советом. Прошиваю МК встроенным в CVAVR прогером. Что бы залить новую прошивку мне приходится нажимать "Erase chip". При этом стирается и eeprom. Так вот есть ли способ стереть только flash память не трогая eeprom?

П.С. почему мне приходится стирать чип - после залития новой прошивки, независимо от того больше она или меньше, или я вообще одну циферку подправил в коде, программатор при проверке залитого выдает CRC error на таком-то адресе, и естесственно устройство не работает...

П.П.С. Камень mega8535. Прогер STK200

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

Добавлено: Вс май 08, 2011 21:24:15
ARV
прошейте фьюз EESAVE - и при последующем стирании чипа EEPROM не будет стираться.

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

Добавлено: Вс май 08, 2011 22:00:11
rs39
Так вот же, переключатель в самом низу окна прошивальщика (см. скриншот).
Ставим галку и EEPROM не будет затираться, не при записи не при стирании.

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

Добавлено: Пн май 09, 2011 23:19:08
Волосатый
ARV писал(а):прошейте фьюз EESAVE - и при последующем стирании чипа EEPROM не будет стираться.
Спасибо, помогло :)
rs39 писал(а):Так вот же, переключатель в самом низу окна прошивальщика (см. скриншот).
Ставим галку и EEPROM не будет затираться, не при записи не при стирании.
А эта опция автоматом заливает еепром после стирания чипа, это не подходит потому что мне не надо перезаписывать еепром.

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

Добавлено: Ср май 11, 2011 20:54:00
demiurg301
Здравствуйте форумчане.
Посоветуйте пожалуйста внешнее ОЗУ для Atmеga128 c параллельным интерфесом , килобайт на 20-30 , чтобы можно было в CVAVR её подключить и работать не замарачиваясь с написанием процедур. А тоговорят atmelовскую сняли с производства.

ДА , ещё такой вопрос могу ли я повесить на программный i2c в CVAVR 2 разных устройства - RTC PCF8563 и память 24С08 - не будут ли они конфликтовать?

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

Добавлено: Чт май 12, 2011 20:08:28
rs39
Имеется в наличии энкодер. На выходе у него 10 разрядов. Работает по принципу кода Грея.
Хочу реализовать угломер, с выводом данных на lcd дисплей. Так как разрядов на выходе энкодера больше 8, то подключаю его на 2 порта атмеги. Поясняющий рисунок прилагаю во вложении.
Подскажите алгоритм, как реализовать правильно.
Сам думаю так:
<<В цикле из 10 шагов опрашивать состояние каждого бита порта и складывать данные в переменную либо в массив.>> В конце цикла скидывать значение переменной на lcd, с этим вопросов нет. А вот про цикл и массив - я ничего не усложняю? Может как-то проще можно реализовать? :)

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

Добавлено: Чт май 12, 2011 20:30:42
Мастер Ломастер

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

int grey_code = ((PINA & 0x03) << 8) | PINB; // PINA - старшие 2 бита с энкодера, PINB - младшие 8 бит
и никаких массивов

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

Добавлено: Чт май 12, 2011 20:42:21
rs39
Спасибо! Да действительно все проще.. Век живи век учись :)

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

Добавлено: Пт май 13, 2011 23:27:32
maxpetr1993
доброго времени суток)) вообщем проблема в следующем пишу Бегущею строку ,то есть дисплей 8х64 пикселя
,часы, термометр,ну и соответственно текст ,если перемещать символы со с одного знакоместа на другое то конечно это оч просто и проблем нет,а вот чтоб двигать символы на один пиксель в лева или право бьюсь головой об стол))в низ и вверх тоже оч просто)) а вот в бок( тоесть нужно в один отображаймый байт переписывать какуюто часть одного байта и соседнего байта из буфера в котором уже лежит подготовленная картинка )) не прошу кода хоть намекните на нормальном русском языке,а если кусочек для примера покажите ну просто супер будет))

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

Добавлено: Сб май 14, 2011 09:23:12
Мастер Ломастер
вы бегущую-то строку как делаете? 64 вертикальных столбика у вас при помощи чего управляются? небось, сдвиговые регистры? может, надо всего-авсего на 1 такт больше-меньше давать в них, чтобы на 1 пиксел сдвинуть всю строку?

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

Добавлено: Сб май 14, 2011 10:01:26
Jack_A
clawham писал(а): а я вот влоаты ненавижу...попробуйте к числу 1600000000 прибавить 1 хоть 1000 раз прибавлять будете толку от этого будет НОЛЬ!
А вот это зря. Флоаты не виноваты - причина в ограниченной разрядности. Не зря спецы по численнам методам рекомендуют при суммировании больших массивов данных сначала провести сортировку, и начинать с самых меньших значений, тогда погрешность будет меньше.
У меня в одном проекте работал измеритель мощности ( программный, конечно ), результаты индицировались, и еще нужно все это было непрерывно интегрировать, чтобы получить расход энергии ( что-то типа счетчика ) . Float для быстроты у меня была нестандартная , трехбайтная, но для интегрирования была заведена длинная ( 4 байта мантисса ) переменная, что-то вроде Double float, причем результаты суммировались в течение часа, а затем добавлядись в суммарный расход. Так решился вопрос минимизации вычислительных ресурсов, при этом погрешность вычислений была на порядок меньше инструментальной погрешности аналоговой части.
В общем, голь на выдумки хитра :))

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

Добавлено: Сб май 14, 2011 12:24:36
maxpetr1993
шрифт старый ДОСовский, то есть :

1 байт 1 байт 1 байт ........
2 байт 2 байт 2 байт ......
3 байт 3 байт 3 байт
.....
.....

1 знакоместо 2 знакоместо 3 знакоместо



в памяти лежат с лева на право ,с низу в верх то есть 1 байты (1-8) знакместа
далее 2 байты почереди и тд
строка по 8байт выводиться за одни цикл на 8 шт 595
затем 2 затетем теретья....

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

Добавлено: Сб май 14, 2011 16:10:42
avreal
Jack_A писал(а): В общем, голь на выдумки хитра :))
Ещё довольно распространённый способ -- два аккумулятора.
Грубо: пусть значения могут меняться от 0.001 до 1000.0
Всё, что меньше 1 -- накапливаем в одном аккумуляторе, больше или равно -- в другом.
В конце цикла берём сумму аккумуляторов.
Точность немного ниже, чем при сортировке, но гораздо меньше работы.

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

Добавлено: Вс май 15, 2011 20:02:54
rs39
Мастер Ломастер писал(а):

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

int grey_code = ((PINA & 0x03) << 8) | PINB; // PINA - старшие 2 бита с энкодера, PINB - младшие 8 бит
и никаких массивов
Ок, с этим разобрался с вашей помощью. Еще раз спасибо! :)
А следующий вопрос:
Как отправить значение переменной grey_code по UART на COM порт к примеру? Ведь размер получается больше одного байта, и функцией putchar отправить не получится. Искал инфо об том как отправлять большие числа, но везде только про строки пишут. А это мне не подходит, нужно отправить байтами.

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

Добавлено: Вс май 15, 2011 20:10:34
ARV
rs39 писал(а):А следующий вопрос:
Как отправить значение переменной grey_code по UART на COM порт к примеру? Ведь размер получается больше одного байта, и функцией putchar отправить не получится. Искал инфо об том как отправлять большие числа, но везде только про строки пишут. А это мне не подходит, нужно отправить байтами.
ну вы даете! может, стОит букваро по Си почитать маленько?!

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

putchar(grey_code & 0xFF);
putchar(grey_code >> 8);
это если вам надо передать в БИНАРНОМ виде. а если в символьном - курите формат printf

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

Добавлено: Вс май 15, 2011 20:16:56
rs39
Окей спасибо теперь ясно! :)
Да в том то и дело, со спринтф и другими ф-циями разобрался, а вот с этой мелочью нет. А может не там искал просто :))

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

Добавлено: Пн май 16, 2011 14:08:21
nedman
доброго времени суток... вопрос касается таймера на атмега8(извините если задавали много раз. сам не нашел). как написать код ?
если 1 на пине мк, то счетчик начинает работать 5 секунд и посылается на другой пин 1. после работы(5 сек) этот пин ставится в 0. в коде можно использовать разные ножки мк я пойму. только прошу пояснить, чтобы понять.