CodeVision AVR в вопросах и ответах
- rxstart1
- Вымогатель припоя
- Сообщения: 508
- Зарегистрирован: Пт фев 22, 2013 18:00:43
- Откуда: Беларусь, г. Гомель
Re: CodeVision AVR в вопросах и ответах
коль пошла такая пьянка, есть и у меня вопрос интересный.
Что будет если допустим я ловлю внешнее прерывание с частотой 10Гц, обработчик сбрасывает счетчик таймера который работает с частотой около 20кГц, ну и соответственно когда есть совпадение, работает обработчик прерывания таймера по совпадению. Что будет если выполняется обработка прерывания таймера и в это время возникает прерывание на INT0? Вот это мне очень интересно 
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
ничего интересного.
если не предпринято особых мер, AVR способно обрабатывать только 1 прерывание в каждый момент. т.е. если идет обработка одного прерывания, все остальные не начнут обрабатываться до завершения этого обработчика. а после завершения и исполнения 1 команды ассемблера в "месте прерывания" произойдет переход к обработке наиболее приоритетного прерывания из тех, запросы которых поступили за время обработки первого. как-то так.
если не предпринято особых мер, AVR способно обрабатывать только 1 прерывание в каждый момент. т.е. если идет обработка одного прерывания, все остальные не начнут обрабатываться до завершения этого обработчика. а после завершения и исполнения 1 команды ассемблера в "месте прерывания" произойдет переход к обработке наиболее приоритетного прерывания из тех, запросы которых поступили за время обработки первого. как-то так.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- rxstart1
- Вымогатель припоя
- Сообщения: 508
- Зарегистрирован: Пт фев 22, 2013 18:00:43
- Откуда: Беларусь, г. Гомель
Re: CodeVision AVR в вопросах и ответах
т. е. запрещать прерывание во время обработки не обязательно? А code vision сам стек сохраняет?
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: CodeVision AVR в вопросах и ответах
МК сам это делает, аппаратно. Команда reti включит обратно.rxstart1 писал(а):т. е. запрещать прерывание во время обработки не обязательно?
- rxstart1
- Вымогатель припоя
- Сообщения: 508
- Зарегистрирован: Пт фев 22, 2013 18:00:43
- Откуда: Беларусь, г. Гомель
Re: CodeVision AVR в вопросах и ответах
Спасибо буду знать 
Re: CodeVision AVR в вопросах и ответах
Пробую работать с EEPROM с написанием программы на С.
Объявляю переменную в EEPROM
При компиляции образуется файл *.eep
Далее программа уже должна работать непосредственно с EEPROM и будет изменять в нем данные.
Если я потом комментирую код
то при последующей компиляции файл *.eep удаляется.
А как сделать, чтобы он остался, но в тоже время в программе не было явного объявления этой переменной?
Мысль такая, если я в будущем изменю код на более оптимальный или из-за ошибки, то чтобы у меня данные в EEPROM не затирались из самого кода.
При прошивке то защиту от перезаписи EEPROM можно выставить в фузах. А вот внутри программы как?
Объявляю переменную в EEPROM
Код: Выделить всё
unsigned eeprom char text_EEP[10]="Test";При компиляции образуется файл *.eep
Далее программа уже должна работать непосредственно с EEPROM и будет изменять в нем данные.
Если я потом комментирую код
Код: Выделить всё
//unsigned eeprom char text_EEP[10]="Test";то при последующей компиляции файл *.eep удаляется.
А как сделать, чтобы он остался, но в тоже время в программе не было явного объявления этой переменной?
Мысль такая, если я в будущем изменю код на более оптимальный или из-за ошибки, то чтобы у меня данные в EEPROM не затирались из самого кода.
При прошивке то защиту от перезаписи EEPROM можно выставить в фузах. А вот внутри программы как?
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: CodeVision AVR в вопросах и ответах
Может переименовать или переместить?
Но зачем Вам это надо, я так и не понял. Как Вы потеряете данные, если они будут в исходнике, пускай и закомментированные?
Но зачем Вам это надо, я так и не понял. Как Вы потеряете данные, если они будут в исходнике, пускай и закомментированные?
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
из самого кода у вас ничего не затрется: файл eep надо прошивать в МК программатором. если вы не будете его прошивать и при этом не будете стирать EEPROM - её содержимое сохранится при любых прошивках кода МК.serg_svd писал(а):чтобы у меня данные в EEPROM не затирались из самого кода
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- rxstart1
- Вымогатель припоя
- Сообщения: 508
- Зарегистрирован: Пт фев 22, 2013 18:00:43
- Откуда: Беларусь, г. Гомель
Re: CodeVision AVR в вопросах и ответах
Хотел спросить делаю тахометр на сдвиговых регистрах соответственно использую аппаратный SPI. Есть творческий затык. как байт прирастить на 1 бит. чтобы было понятно:
0000 0000
0000 0001
0000 0011
0000 0111
ну и т. д.
Что то в голове вертится, и пока никак, извращение типа перебирать соответствующий массив не хочу.
0000 0000
0000 0001
0000 0011
0000 0111
ну и т. д.
Что то в голове вертится, и пока никак, извращение типа перебирать соответствующий массив не хочу.
- Apparatchik
- Держит паяльник хвостом
- Сообщения: 908
- Зарегистрирован: Вс май 23, 2010 13:55:42
- Откуда: Украина, Александрия
Re: CodeVision AVR в вопросах и ответах
Здвиг в лево на один и установка нулевого.
«И всё-таки она вертится!»
- rxstart1
- Вымогатель припоя
- Сообщения: 508
- Зарегистрирован: Пт фев 22, 2013 18:00:43
- Откуда: Беларусь, г. Гомель
Re: CodeVision AVR в вопросах и ответах
получим следущее
0000 0001
0000 0010
0000 0100
и т. д.
вот сделал
(x<<i)^1, где i-порядковый номер бита
0000 0001
0000 0010
0000 0100
и т. д.
вот сделал
(x<<i)^1, где i-порядковый номер бита
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Вам же сказали - "и установка нулевого"
Код: Выделить всё
byte <<= 1;
byte |= 0x01;Re: CodeVision AVR в вопросах и ответах
ARV писал(а):из самого кода у вас ничего не затрется: файл eep надо прошивать в МК программатором.
Да про отдельную прошивку данного файла программатором я в курсе. И я не про эту прошивку.
Ведь если в исходнике прописан строковый массив в EEPROM,
Код: Выделить всё
unsigned eeprom char text_EEP[10]="Test";то Разве он не будет затирать каждый раз при запуске контроллера любой измененный текст в EEPROM, на данный прописанный в коде?
Код: Выделить всё
unsigned eeprom char text_EEP[10]="Test";"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
- rxstart1
- Вымогатель припоя
- Сообщения: 508
- Зарегистрирован: Пт фев 22, 2013 18:00:43
- Откуда: Беларусь, г. Гомель
Re: CodeVision AVR в вопросах и ответах
Есть вопросы по коду.
1. Работает крайне тормознуто, хотя использую аппаратный SPI
2.Как сделать так, чтобы выводило 1 раз когда все сдвинет, а не каждые 8 бит. Вот к примеру в этой строчке
if (count>MaxLed) count=0; после обнуления count выводить, но в идеале сделать вывод привязав его к ШИМу скажем на TIMER0?
1. Работает крайне тормознуто, хотя использую аппаратный SPI
2.Как сделать так, чтобы выводило 1 раз когда все сдвинет, а не каждые 8 бит. Вот к примеру в этой строчке
if (count>MaxLed) count=0; после обнуления count выводить, но в идеале сделать вывод привязав его к ШИМу скажем на TIMER0?
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Не будет. Это ведь не RAM, где переменные инициализируются на старте. В случае eeprom инициализация начальными значениями идёт на этапе прошивки, а при выполнении ожидается, что всё уже проинициализировано.serg_svd писал(а):Разве он не будет затирать каждый раз при запуске контроллера любой измененный текст в EEPROM, на данный прописанный в коде?Код: Выделить всё
unsigned eeprom char text_EEP[10]="Test";
Нужна подсказка в решении проблемы с CVAVR
Суть проблемы такова.
Есть ноут RoverBook Partner e415l с установленым на нем CodeVisionAVR 3.12.
Прога запускается все отлично компилится. Только есть проблема с самим прожиком МК.
Сигнатура читается нормально. А как запускаю какой то процес с епромкой или флешой, то сразу или через несколько процентов на прогресбаре валит отшибку и не хочет прошивать нормально.
Такая же трабла проявляется на версии 2.05a
Грешил на программатор и МК. Но на стационарном компе на работе все работает нормально.
Менял уже и скорость порта и его настройки, преставил винду, все драйвера.
Проблема не ушла. Дошел до того что уже игрался с приоритетом процесов в диспетчере задач.
Все остается так же.
Даже на программаторе Громова через СOM порт программой UniProf не читает МК.
Да, знаю что этот ноут тот еще калькулятор(другого мобильного ПК нет).
Кто может подсказать куда дальше копать или где может быть еще собака зарыта???
Есть ноут RoverBook Partner e415l с установленым на нем CodeVisionAVR 3.12.
Прога запускается все отлично компилится. Только есть проблема с самим прожиком МК.
Сигнатура читается нормально. А как запускаю какой то процес с епромкой или флешой, то сразу или через несколько процентов на прогресбаре валит отшибку и не хочет прошивать нормально.
Такая же трабла проявляется на версии 2.05a
Грешил на программатор и МК. Но на стационарном компе на работе все работает нормально.
Менял уже и скорость порта и его настройки, преставил винду, все драйвера.
Проблема не ушла. Дошел до того что уже игрался с приоритетом процесов в диспетчере задач.
Все остается так же.
Даже на программаторе Громова через СOM порт программой UniProf не читает МК.
Да, знаю что этот ноут тот еще калькулятор(другого мобильного ПК нет).
Кто может подсказать куда дальше копать или где может быть еще собака зарыта???
Re: Нужна подсказка в решении проблемы с CVAVR
у меня заработало с заменой HDD на SSD.
Хотя надо смотреть - поддерживает ли калькулятор SATA.
Хотя надо смотреть - поддерживает ли калькулятор SATA.
Re: Нужна подсказка в решении проблемы с CVAVR
Неа, не прокатит, к сожалению там только обычный ATA(IDE).
- rxstart1
- Вымогатель припоя
- Сообщения: 508
- Зарегистрирован: Пт фев 22, 2013 18:00:43
- Откуда: Беларусь, г. Гомель
Re: CodeVision AVR в вопросах и ответах
Элементарно проверь просадку +5В на USB
Второй вариант, возможно ты юзаешь USB 3.0 попробуй воткнуть в USB 2.0 и понизить программно скорость передачи
Второй вариант, возможно ты юзаешь USB 3.0 попробуй воткнуть в USB 2.0 и понизить программно скорость передачи
Re: CodeVision AVR в вопросах и ответах
Вопрос ... для знакомства/изучения программирования микроконтроллеров Arduino, обязательно иметь подключенную схему или можно и не иметь его, как при изучении ПР_а от ОВЕН?
Смеюсь последний ... Тормоз однако!
"Мяса много не бывает ... кто был с этим не согласен ... остался на ветках."(моя мысля)
"Мяса много не бывает ... кто был с этим не согласен ... остался на ветках."(моя мысля)
