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

Обсуждаем контроллеры компании Atmel.
svr007
Родился
Сообщения: 15
Зарегистрирован: Пт ноя 12, 2010 11:58:37

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

Сообщение svr007 »

Аlex писал(а):Не понятно, зачем использовать 2 массива ? Достаточно одного - зависимость температура/скважность.
Заполняем массив значениями скважности и выбираем из него по индексу, равному температуре, без всяких циклов и переборов.
Если у Вас в массиве значения температуры будут не с определённым шагом (например 1,3,10,15, ..), то способ

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

for(i=0;i<100;i++){
if(Temp==A[i]) OCR2=B[i];
}
не пойдёт, т.к. Temp может быть не равен ни одному значению в массиве.

Цифры я привел просто для примера. В реале в одном массиве значение реальной температуры,в другом значение для OCR2 от 51 до 255.Плюс шимить надо от 20 до 50 градусов, соответственно 20гр-20% шим 50гр- 100% шим, зависимость не линейная по числам,а линейна по номерам в массиве. Код который подсказали работает как надо.
lakec
Открыл глаза
Сообщения: 78
Зарегистрирован: Вт мар 12, 2013 09:13:16

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

Сообщение lakec »

Поделитесь, пожалуйста, вылеченной версией 2.6 или новее. Не дает компилить из-за ограничения на размер кода.
Можно в личку.
Спасибо
eduardo
Нашел транзистор. Понюхал.
Сообщения: 171
Зарегистрирован: Вс июн 17, 2012 16:32:42

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

Сообщение eduardo »

Здравствуйте. У меня такой вопрос: наковырял на днях примитивную прогу для меги16,нех-файл получился около 20кб. При прошивке прога влезла в контроллер нормально,но работает в железе некорректно. В протеусе все путем пашет. Влияет ли завышенный размер нех-файла на некорректную работу в железе?
С тини2313 такого не было,когда в него грузил нех-файл размером около 4кб... Спасибо.
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

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

Сообщение pyzhman »

От размера (в пределах размера памяти мк) не зависит. Производитель гарантирует работоспособность каждой ячейки памяти :) . Так что смотрите железо и фуз-биты. Или может там нужен еще EEPROM залитый.
Docendo discimus
Amstron
Нашел транзистор. Понюхал.
Сообщения: 173
Зарегистрирован: Вт дек 21, 2010 21:18:52

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

Сообщение Amstron »

lakec писал(а):Поделитесь, пожалуйста, вылеченной версией 2.6 или новее. Не дает компилить из-за ограничения на размер кода.
Можно в личку.
Спасибо

мне тоже в личку киньте.
У меня глюк с компилятором на всех версиях. При чем глюки разные.
Хочу попробовать новой версией компиля!
Аватара пользователя
Garin
Потрогал лапой паяльник
Сообщения: 351
Зарегистрирован: Пн сен 12, 2011 12:13:46

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

Сообщение Garin »

Тут гуглем умет кто пользоваться? А то я нахожу только платные компиЛЯ.
Аватара пользователя
0867532
Встал на лапы
Сообщения: 142
Зарегистрирован: Сб май 25, 2013 21:14:11
Откуда: Москва
Контактная информация:

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

Сообщение 0867532 »

Поцаны, помогите плз: есть LED матрица, её Х воткнут в порт А, а Y в порт B
матрица 8х8, и пинов в портах 0-7 то есть хорошо подходит, я не фонты вывожу, а зажигаю кастомные диоды, но немного не удобно PORTB.1 = 0xFF; PORTA.0 = 0x00; можно ли как нибудь заменить PORTA.0 на х1 PORTB.0 на y1???
вроде это #define делает?!
Если возникнут вопросы - посмотрите на мой аватар.
glukolog
Родился
Сообщения: 3
Зарегистрирован: Вс дек 19, 2010 22:05:17

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

Сообщение glukolog »

А можно на мыло gluk@newmail.ru скинуть файл/ссылку с CVAVR версии больше 2.05.3 (не жадный если можно).
А то 2.05.3 какая-то фигня:
пишу под ATMEGA128A код из четырёх строк

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

while(1) {
PORTA = 7;
delay_ms(5);
PORTA = 0;
delay_ms(5);
}

МК висисит меняю на delay_us(5000); работает.... Самое интересное что в протеусе усё пучком. А на реальном чипе косяк.
Если бы дело было только в delay то я бы везде поставил мкс задержки.
Помогите!
Аватара пользователя
Goodefine
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср апр 16, 2008 13:22:54
Откуда: Приднестровье, Тирасполь

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

Сообщение Goodefine »

Он не висит, а быстро моргает
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

Сообщение Gudd-Head »

К тому же, там вроде надо задефайнить тактовую частоту МК?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
ut1wpr
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

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

Сообщение ut1wpr »

eduardo писал(а):Здравствуйте. У меня такой вопрос: наковырял на днях примитивную прогу для меги16,нех-файл получился около 20кб. При прошивке прога влезла в контроллер нормально,но работает в железе некорректно. В протеусе все путем пашет. Влияет ли завышенный размер нех-файла на некорректную работу в железе?
С тини2313 такого не было,когда в него грузил нех-файл размером около 4кб... Спасибо.
В контроллер программа зашивается не в HEX формате. При прошивке программа загрузки автоматически преобразует ТЕКСТ hex формата в бинарный и уже его прошивает. А бинарный формат намного меньше. Так что сравнивать размеры текстового файла HEX с допустимым размером флэш в МК бессмысленно. Читайте литературу.
С уважением,
Виктор.
eduardo
Нашел транзистор. Понюхал.
Сообщения: 171
Зарегистрирован: Вс июн 17, 2012 16:32:42

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

Сообщение eduardo »

Понятно. Спасибо. Еще хочу спросить,как сделать чтоб переменная( uns. char) хранящаяся в еепром при загрузке проги в контроллер принимала зачение 0х00? При ее объявлении я присваивал ей 0х00,но после загрузки она все равно осталась 0хFF...
Последний раз редактировалось ploop Пн июл 01, 2013 22:03:29, всего редактировалось 1 раз.
Причина: Нарушение правил п.2.7
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

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

Сообщение pyzhman »

То, что объявляется, содержится в файле *.eep, предназначенном для заливки. Чтобы при старте программы переменная принимала нужное значение, его нужно передавать переменной в теле программы.


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

eeprom unsigned char eData= 0x00; // это значение будет в файле *.eep

main(void)
{
...
...
eData= 0x00; // а это значение будет уже в программе
...
...
}
Docendo discimus
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

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

Сообщение isx »

День добрый!
Помогите правильно организовать алгоритм на atmega8.
Нужно посредством ШИМ-а регулировать ток на 4-х ногах контроллера. сначала ток нарастает на 1-ой ноге, затем он начинает спадать и одновременно с этим начинает расти ток на второй ноге.Затем ток на второй ноге начинает спадать и за ним начинает расти ток на 3-ей ноге, и так по кругу.
Возможно ли такое реализовать аппаратными средствами?
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

Сообщение Аlex »

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

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

Сообщение isx »

Не так написал :) . Нужно Изменять скважность ШИМ-а на ногах контроллера.
Нужно, чтобы при нажатии кнопки 4 светодиода попеременно загарались и гасли (в предыдущем посте я описывал к это должно быть). Как кнопка отпускается процесс замораживается (как горели на этот момент, так и должны гореть) до следующего нажатия кнопки.
Программно понятно КаК делать, а вот можно ли это сделать аппаратно?
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

Сообщение Аlex »

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

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

Сообщение isx »

Есть там вроде 2 таймера. На них можно собрать шим, но их только 2, а надо 4. Может есть ещё какие функции там?
eduardo
Нашел транзистор. Понюхал.
Сообщения: 171
Зарегистрирован: Вс июн 17, 2012 16:32:42

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

Сообщение eduardo »

pyzhman писал(а):То, что объявляется, содержится в файле *.eep, предназначенном для заливки. Чтобы при старте программы переменная принимала нужное значение, его нужно передавать переменной в теле программы.


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

eeprom unsigned char eData= 0x00; // это значение будет в файле *.eep

main(void)
{
...
...
eData= 0x00; // а это значение будет уже в программе
...
...
}

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

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

Сообщение vitalik_1984 »

isx писал(а):Есть там вроде 2 таймера. На них можно собрать шим, но их только 2, а надо 4. Может есть ещё какие функции там?

Вообще то в AtMega8 три аппаратных шим, если мне не изменяет память.
Изображение
А насчет программного шим это вопрос второй. Были деятели, которые на AtTiny2313 делали 50! ШИМ регулируемых светодиодов через чарлиплексинг и не помню сколько много кнопок с одновременным управлением только одним из каналов.
Если в один момент времени нужен только один канал, то можно с помощью транзисторов и одного ШИМ справиться с вашей задачей.
Есть еще вариант с БИТ модуляцией. С применением внешних регистров сдвига описывалось, что можно до200 каналов регулировать.
Еще есть вариант посылать разные байты по TX, но это уже на грани фантастики и извращения :))) бред моего больного мозга.
Ответить

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