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

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

Сообщение rxstart1 »

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

Сообщение ARV »

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

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

Сообщение rxstart1 »

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

Сообщение Z_h_e »

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

Сообщение rxstart1 »

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

Сообщение serg_svd »

Пробую работать с EEPROM с написанием программы на С.
Объявляю переменную в EEPROM

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

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

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

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

//unsigned eeprom char text_EEP[10]="Test";
то при последующей компиляции файл *.eep удаляется.
А как сделать, чтобы он остался, но в тоже время в программе не было явного объявления этой переменной?
Мысль такая, если я в будущем изменю код на более оптимальный или из-за ошибки, то чтобы у меня данные в EEPROM не затирались из самого кода.
При прошивке то защиту от перезаписи EEPROM можно выставить в фузах. А вот внутри программы как?
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

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

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

Сообщение ARV »

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

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

Сообщение rxstart1 »

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

Сообщение Apparatchik »

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

Сообщение rxstart1 »

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

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

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

Сообщение WiseLord »

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

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

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

Сообщение serg_svd »

ARV писал(а):из самого кода у вас ничего не затрется: файл eep надо прошивать в МК программатором.
Да про отдельную прошивку данного файла программатором я в курсе. И я не про эту прошивку.

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

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

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

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

unsigned eeprom char text_EEP[10]="Test";
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Вымогатель припоя
Аватара пользователя
Сообщения: 508
Зарегистрирован: Пт фев 22, 2013 18:00:43
Откуда: Беларусь, г. Гомель

Сообщение rxstart1 »

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

Сообщение WiseLord »

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

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

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

Сообщение MaxGoblin »

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

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

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


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




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

Сообщение Vov123 »

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

Сообщение MaxGoblin »

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

Сообщение rxstart1 »

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

Сообщение TOPMO3 »

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

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