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

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

Добавлено: Пн янв 16, 2017 20:34:52
rxstart1
коль пошла такая пьянка, есть и у меня вопрос интересный. :))) Что будет если допустим я ловлю внешнее прерывание с частотой 10Гц, обработчик сбрасывает счетчик таймера который работает с частотой около 20кГц, ну и соответственно когда есть совпадение, работает обработчик прерывания таймера по совпадению. Что будет если выполняется обработка прерывания таймера и в это время возникает прерывание на INT0? Вот это мне очень интересно :))

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

Добавлено: Пн янв 16, 2017 20:54:34
ARV
ничего интересного.
если не предпринято особых мер, AVR способно обрабатывать только 1 прерывание в каждый момент. т.е. если идет обработка одного прерывания, все остальные не начнут обрабатываться до завершения этого обработчика. а после завершения и исполнения 1 команды ассемблера в "месте прерывания" произойдет переход к обработке наиболее приоритетного прерывания из тех, запросы которых поступили за время обработки первого. как-то так.

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

Добавлено: Пн янв 16, 2017 20:57:35
rxstart1
т. е. запрещать прерывание во время обработки не обязательно? А code vision сам стек сохраняет?

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

Добавлено: Пн янв 16, 2017 21:04:00
Z_h_e
rxstart1 писал(а):т. е. запрещать прерывание во время обработки не обязательно?
МК сам это делает, аппаратно. Команда reti включит обратно.

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

Добавлено: Пн янв 16, 2017 21:26:19
rxstart1
Спасибо буду знать :))

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

Добавлено: Вт янв 17, 2017 16:36:35
serg_svd
Пробую работать с EEPROM с написанием программы на С.
Объявляю переменную в EEPROM

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

unsigned eeprom char text_EEP[10]="Test";
При компиляции образуется файл *.eep

Далее программа уже должна работать непосредственно с EEPROM и будет изменять в нем данные.
Если я потом комментирую код

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

//unsigned eeprom char text_EEP[10]="Test";
то при последующей компиляции файл *.eep удаляется.
А как сделать, чтобы он остался, но в тоже время в программе не было явного объявления этой переменной?
Мысль такая, если я в будущем изменю код на более оптимальный или из-за ошибки, то чтобы у меня данные в EEPROM не затирались из самого кода.
При прошивке то защиту от перезаписи EEPROM можно выставить в фузах. А вот внутри программы как?

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

Добавлено: Вт янв 17, 2017 17:24:08
Z_h_e
Может переименовать или переместить? 8)

Но зачем Вам это надо, я так и не понял. Как Вы потеряете данные, если они будут в исходнике, пускай и закомментированные?

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

Добавлено: Вт янв 17, 2017 18:16:40
ARV
serg_svd писал(а):чтобы у меня данные в EEPROM не затирались из самого кода
из самого кода у вас ничего не затрется: файл eep надо прошивать в МК программатором. если вы не будете его прошивать и при этом не будете стирать EEPROM - её содержимое сохранится при любых прошивках кода МК.

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

Добавлено: Вт янв 17, 2017 20:14:01
rxstart1
Хотел спросить делаю тахометр на сдвиговых регистрах соответственно использую аппаратный SPI. Есть творческий затык. как байт прирастить на 1 бит. чтобы было понятно:
0000 0000
0000 0001
0000 0011
0000 0111
ну и т. д.
Что то в голове вертится, и пока никак, извращение типа перебирать соответствующий массив не хочу. :)))

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

Добавлено: Вт янв 17, 2017 20:27:49
Apparatchik
Здвиг в лево на один и установка нулевого.

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

Добавлено: Вт янв 17, 2017 20:29:34
rxstart1
получим следущее
0000 0001
0000 0010
0000 0100
и т. д.

вот сделал :)))

(x<<i)^1, где i-порядковый номер бита

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

Добавлено: Вт янв 17, 2017 20:39:17
WiseLord
Вам же сказали - "и установка нулевого"

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

byte <<= 1;
byte |= 0x01;

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

Добавлено: Вт янв 17, 2017 21:41:07
serg_svd
ARV писал(а):из самого кода у вас ничего не затрется: файл eep надо прошивать в МК программатором.
Да про отдельную прошивку данного файла программатором я в курсе. И я не про эту прошивку.

Ведь если в исходнике прописан строковый массив в EEPROM,

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

unsigned eeprom char text_EEP[10]="Test";
то Разве он не будет затирать каждый раз при запуске контроллера любой измененный текст в EEPROM, на данный прописанный в коде?

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

unsigned eeprom char text_EEP[10]="Test";

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

Добавлено: Вт янв 17, 2017 21:56:27
rxstart1
Есть вопросы по коду.
1. Работает крайне тормознуто, хотя использую аппаратный SPI
2.Как сделать так, чтобы выводило 1 раз когда все сдвинет, а не каждые 8 бит. Вот к примеру в этой строчке
if (count>MaxLed) count=0; после обнуления count выводить, но в идеале сделать вывод привязав его к ШИМу скажем на TIMER0?

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

Добавлено: Ср янв 18, 2017 05:56:54
WiseLord
serg_svd писал(а):Разве он не будет затирать каждый раз при запуске контроллера любой измененный текст в EEPROM, на данный прописанный в коде?

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

unsigned eeprom char text_EEP[10]="Test";
Не будет. Это ведь не RAM, где переменные инициализируются на старте. В случае eeprom инициализация начальными значениями идёт на этапе прошивки, а при выполнении ожидается, что всё уже проинициализировано.

Нужна подсказка в решении проблемы с CVAVR

Добавлено: Ср янв 18, 2017 15:09:43
MaxGoblin
Суть проблемы такова.
Есть ноут RoverBook Partner e415l с установленым на нем CodeVisionAVR 3.12.
Прога запускается все отлично компилится. Только есть проблема с самим прожиком МК.
Сигнатура читается нормально. А как запускаю какой то процес с епромкой или флешой, то сразу или через несколько процентов на прогресбаре валит отшибку и не хочет прошивать нормально.
Такая же трабла проявляется на версии 2.05a

Грешил на программатор и МК. Но на стационарном компе на работе все работает нормально.

Менял уже и скорость порта и его настройки, преставил винду, все драйвера.
Проблема не ушла. Дошел до того что уже игрался с приоритетом процесов в диспетчере задач.
Все остается так же.
Даже на программаторе Громова через СOM порт программой UniProf не читает МК.


Да, знаю что этот ноут тот еще калькулятор(другого мобильного ПК нет).




Кто может подсказать куда дальше копать или где может быть еще собака зарыта???

Re: Нужна подсказка в решении проблемы с CVAVR

Добавлено: Ср янв 18, 2017 15:23:17
Vov123
у меня заработало с заменой HDD на SSD.
Хотя надо смотреть - поддерживает ли калькулятор SATA.

Re: Нужна подсказка в решении проблемы с CVAVR

Добавлено: Ср янв 18, 2017 15:32:40
MaxGoblin
Неа, не прокатит, к сожалению там только обычный ATA(IDE).

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

Добавлено: Ср янв 18, 2017 20:20:56
rxstart1
Элементарно проверь просадку +5В на USB
Второй вариант, возможно ты юзаешь USB 3.0 попробуй воткнуть в USB 2.0 и понизить программно скорость передачи

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

Добавлено: Чт янв 19, 2017 11:36:18
TOPMO3
Вопрос ... для знакомства/изучения программирования микроконтроллеров Arduino, обязательно иметь подключенную схему или можно и не иметь его, как при изучении ПР_а от ОВЕН?