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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
rxstart1
Вымогатель припоя
Сообщения: 508
Зарегистрирован: Пт фев 22, 2013 18:00:43
Откуда: Беларусь, г. Гомель

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

Сообщение rxstart1 »

коль пошла такая пьянка, есть и у меня вопрос интересный. :))) Что будет если допустим я ловлю внешнее прерывание с частотой 10Гц, обработчик сбрасывает счетчик таймера который работает с частотой около 20кГц, ну и соответственно когда есть совпадение, работает обработчик прерывания таймера по совпадению. Что будет если выполняется обработка прерывания таймера и в это время возникает прерывание на INT0? Вот это мне очень интересно :))
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

ничего интересного.
если не предпринято особых мер, AVR способно обрабатывать только 1 прерывание в каждый момент. т.е. если идет обработка одного прерывания, все остальные не начнут обрабатываться до завершения этого обработчика. а после завершения и исполнения 1 команды ассемблера в "месте прерывания" произойдет переход к обработке наиболее приоритетного прерывания из тех, запросы которых поступили за время обработки первого. как-то так.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
rxstart1
Вымогатель припоя
Сообщения: 508
Зарегистрирован: Пт фев 22, 2013 18:00:43
Откуда: Беларусь, г. Гомель

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

Сообщение rxstart1 »

т. е. запрещать прерывание во время обработки не обязательно? А code vision сам стек сохраняет?
Аватара пользователя
Z_h_e
Собутыльник Кота
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

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

Сообщение Z_h_e »

rxstart1 писал(а):т. е. запрещать прерывание во время обработки не обязательно?
МК сам это делает, аппаратно. Команда reti включит обратно.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Аватара пользователя
rxstart1
Вымогатель припоя
Сообщения: 508
Зарегистрирован: Пт фев 22, 2013 18:00:43
Откуда: Беларусь, г. Гомель

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

Сообщение rxstart1 »

Спасибо буду знать :))
Аватара пользователя
serg_svd
Собутыльник Кота
Сообщения: 2560
Зарегистрирован: Ср янв 16, 2008 08:34:04
Откуда: KMV

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

Сообщение serg_svd »

Пробую работать с 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 в вопросах и ответах

Сообщение Z_h_e »

Может переименовать или переместить? 8)

Но зачем Вам это надо, я так и не понял. Как Вы потеряете данные, если они будут в исходнике, пускай и закомментированные?
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

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

Мой уютный бложик... заходите!
Аватара пользователя
rxstart1
Вымогатель припоя
Сообщения: 508
Зарегистрирован: Пт фев 22, 2013 18:00:43
Откуда: Беларусь, г. Гомель

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

Сообщение rxstart1 »

Хотел спросить делаю тахометр на сдвиговых регистрах соответственно использую аппаратный SPI. Есть творческий затык. как байт прирастить на 1 бит. чтобы было понятно:
0000 0000
0000 0001
0000 0011
0000 0111
ну и т. д.
Что то в голове вертится, и пока никак, извращение типа перебирать соответствующий массив не хочу. :)))
Аватара пользователя
Apparatchik
Держит паяльник хвостом
Сообщения: 908
Зарегистрирован: Вс май 23, 2010 13:55:42
Откуда: Украина, Александрия

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

Сообщение Apparatchik »

Здвиг в лево на один и установка нулевого.
«И всё-таки она вертится!»
Аватара пользователя
rxstart1
Вымогатель припоя
Сообщения: 508
Зарегистрирован: Пт фев 22, 2013 18:00:43
Откуда: Беларусь, г. Гомель

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

Сообщение rxstart1 »

получим следущее
0000 0001
0000 0010
0000 0100
и т. д.

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

(x<<i)^1, где i-порядковый номер бита
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

Вам же сказали - "и установка нулевого"

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

byte <<= 1;
byte |= 0x01;
Аватара пользователя
serg_svd
Собутыльник Кота
Сообщения: 2560
Зарегистрирован: Ср янв 16, 2008 08:34:04
Откуда: KMV

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

Сообщение serg_svd »

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 в вопросах и ответах

Сообщение rxstart1 »

Есть вопросы по коду.
1. Работает крайне тормознуто, хотя использую аппаратный SPI
2.Как сделать так, чтобы выводило 1 раз когда все сдвинет, а не каждые 8 бит. Вот к примеру в этой строчке
if (count>MaxLed) count=0; после обнуления count выводить, но в идеале сделать вывод привязав его к ШИМу скажем на TIMER0?
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

serg_svd писал(а):Разве он не будет затирать каждый раз при запуске контроллера любой измененный текст в EEPROM, на данный прописанный в коде?

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

unsigned eeprom char text_EEP[10]="Test";
Не будет. Это ведь не RAM, где переменные инициализируются на старте. В случае eeprom инициализация начальными значениями идёт на этапе прошивки, а при выполнении ожидается, что всё уже проинициализировано.
MaxGoblin
Открыл глаза
Сообщения: 41
Зарегистрирован: Сб окт 29, 2011 21:46:14

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

Сообщение MaxGoblin »

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

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

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


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




Кто может подсказать куда дальше копать или где может быть еще собака зарыта???
Vov123
Опытный кот
Сообщения: 804
Зарегистрирован: Чт мар 12, 2009 16:31:05

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

Сообщение Vov123 »

у меня заработало с заменой HDD на SSD.
Хотя надо смотреть - поддерживает ли калькулятор SATA.
MaxGoblin
Открыл глаза
Сообщения: 41
Зарегистрирован: Сб окт 29, 2011 21:46:14

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

Сообщение MaxGoblin »

Неа, не прокатит, к сожалению там только обычный ATA(IDE).
Аватара пользователя
rxstart1
Вымогатель припоя
Сообщения: 508
Зарегистрирован: Пт фев 22, 2013 18:00:43
Откуда: Беларусь, г. Гомель

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

Сообщение rxstart1 »

Элементарно проверь просадку +5В на USB
Второй вариант, возможно ты юзаешь USB 3.0 попробуй воткнуть в USB 2.0 и понизить программно скорость передачи
Аватара пользователя
TOPMO3
Встал на лапы
Сообщения: 129
Зарегистрирован: Вс янв 17, 2010 10:59:57
Откуда: Ижевск

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

Сообщение TOPMO3 »

Вопрос ... для знакомства/изучения программирования микроконтроллеров Arduino, обязательно иметь подключенную схему или можно и не иметь его, как при изучении ПР_а от ОВЕН?
Смеюсь последний ... Тормоз однако!
"Мяса много не бывает ... кто был с этим не согласен ... остался на ветках."(моя мысля)
Ответить

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