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

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

Добавлено: Сб июн 22, 2013 20:55:25
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% шим, зависимость не линейная по числам,а линейна по номерам в массиве. Код который подсказали работает как надо.

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

Добавлено: Вс июн 23, 2013 21:13:29
lakec
Поделитесь, пожалуйста, вылеченной версией 2.6 или новее. Не дает компилить из-за ограничения на размер кода.
Можно в личку.
Спасибо

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

Добавлено: Пн июн 24, 2013 07:14:46
eduardo
Здравствуйте. У меня такой вопрос: наковырял на днях примитивную прогу для меги16,нех-файл получился около 20кб. При прошивке прога влезла в контроллер нормально,но работает в железе некорректно. В протеусе все путем пашет. Влияет ли завышенный размер нех-файла на некорректную работу в железе?
С тини2313 такого не было,когда в него грузил нех-файл размером около 4кб... Спасибо.

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

Добавлено: Пн июн 24, 2013 08:01:20
pyzhman
От размера (в пределах размера памяти мк) не зависит. Производитель гарантирует работоспособность каждой ячейки памяти :) . Так что смотрите железо и фуз-биты. Или может там нужен еще EEPROM залитый.

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

Добавлено: Пн июн 24, 2013 16:41:40
Amstron
lakec писал(а):Поделитесь, пожалуйста, вылеченной версией 2.6 или новее. Не дает компилить из-за ограничения на размер кода.
Можно в личку.
Спасибо
мне тоже в личку киньте.
У меня глюк с компилятором на всех версиях. При чем глюки разные.
Хочу попробовать новой версией компиля!

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

Добавлено: Пн июн 24, 2013 20:36:38
Garin
Тут гуглем умет кто пользоваться? А то я нахожу только платные компиЛЯ.

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

Добавлено: Ср июн 26, 2013 09:44:47
0867532
Поцаны, помогите плз: есть LED матрица, её Х воткнут в порт А, а Y в порт B
матрица 8х8, и пинов в портах 0-7 то есть хорошо подходит, я не фонты вывожу, а зажигаю кастомные диоды, но немного не удобно PORTB.1 = 0xFF; PORTA.0 = 0x00; можно ли как нибудь заменить PORTA.0 на х1 PORTB.0 на y1???
вроде это #define делает?!

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

Добавлено: Чт июн 27, 2013 17:17:13
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 то я бы везде поставил мкс задержки.
Помогите!

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

Добавлено: Чт июн 27, 2013 20:02:38
Goodefine
Он не висит, а быстро моргает

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

Добавлено: Пт июн 28, 2013 14:09:40
Gudd-Head
К тому же, там вроде надо задефайнить тактовую частоту МК?

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

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

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

Добавлено: Пн июл 01, 2013 16:32:16
eduardo
Понятно. Спасибо. Еще хочу спросить,как сделать чтоб переменная( uns. char) хранящаяся в еепром при загрузке проги в контроллер принимала зачение 0х00? При ее объявлении я присваивал ей 0х00,но после загрузки она все равно осталась 0хFF...

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

Добавлено: Вт июл 02, 2013 08:20:42
pyzhman
То, что объявляется, содержится в файле *.eep, предназначенном для заливки. Чтобы при старте программы переменная принимала нужное значение, его нужно передавать переменной в теле программы.

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

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

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

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

Добавлено: Вт июл 02, 2013 17:30:12
isx
День добрый!
Помогите правильно организовать алгоритм на atmega8.
Нужно посредством ШИМ-а регулировать ток на 4-х ногах контроллера. сначала ток нарастает на 1-ой ноге, затем он начинает спадать и одновременно с этим начинает расти ток на второй ноге.Затем ток на второй ноге начинает спадать и за ним начинает расти ток на 3-ей ноге, и так по кругу.
Возможно ли такое реализовать аппаратными средствами?

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

Добавлено: Вт июл 02, 2013 18:14:21
Аlex
Что означает "ток на ноге" ? Ток зависит от нагрузки и напряжения, его нельзя выдать откуда-то, с ноги например.
Поподробнее объясните что хотите сделать.

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

Добавлено: Вт июл 02, 2013 18:23:42
isx
Не так написал :) . Нужно Изменять скважность ШИМ-а на ногах контроллера.
Нужно, чтобы при нажатии кнопки 4 светодиода попеременно загарались и гасли (в предыдущем посте я описывал к это должно быть). Как кнопка отпускается процесс замораживается (как горели на этот момент, так и должны гореть) до следующего нажатия кнопки.
Программно понятно КаК делать, а вот можно ли это сделать аппаратно?

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

Добавлено: Вт июл 02, 2013 20:35:38
Аlex
можно ли это сделать аппаратно?
А что на это говорит даташит ?

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

Добавлено: Вт июл 02, 2013 20:52:07
isx
Есть там вроде 2 таймера. На них можно собрать шим, но их только 2, а надо 4. Может есть ещё какие функции там?

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

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

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

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

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

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

Добавлено: Вт июл 02, 2013 21:44:59
vitalik_1984
isx писал(а):Есть там вроде 2 таймера. На них можно собрать шим, но их только 2, а надо 4. Может есть ещё какие функции там?
Вообще то в AtMega8 три аппаратных шим, если мне не изменяет память.
Изображение
А насчет программного шим это вопрос второй. Были деятели, которые на AtTiny2313 делали 50! ШИМ регулируемых светодиодов через чарлиплексинг и не помню сколько много кнопок с одновременным управлением только одним из каналов.
Если в один момент времени нужен только один канал, то можно с помощью транзисторов и одного ШИМ справиться с вашей задачей.
Есть еще вариант с БИТ модуляцией. С применением внешних регистров сдвига описывалось, что можно до200 каналов регулировать.
Еще есть вариант посылать разные байты по TX, но это уже на грани фантастики и извращения :))) бред моего больного мозга.