прерывание INT_0 (attiny2313)
- Реклама
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
Значит расставь "зарубки" в проге и определи до куда она доходит и виснет. пример в задаче 4 под кнопокй "www".sheva_s писал(а):По умолчанию от внутренего генератора.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
- Реклама
Ща спою.
1.Не верное размещение метки RESET, все метки прерываний (даже если они не работают не должны находится в RESETе, иначе по сработке прерывания программа будет вываливаться в RESET)
2.В обработчике RESET НЕЛЬЗЯ писать выход из прерывания, кудаже он будет выходить?
Прерывание RESET работает только с момента включения и если поставить оператор reti то он будет возвращаться сам в себя (RESET имеется в виду)
Пользуюся AVR Studio, в ней сразу видна эта ошибка.
1.Не верное размещение метки RESET, все метки прерываний (даже если они не работают не должны находится в RESETе, иначе по сработке прерывания программа будет вываливаться в RESET)
2.В обработчике RESET НЕЛЬЗЯ писать выход из прерывания, кудаже он будет выходить?
Прерывание RESET работает только с момента включения и если поставить оператор reti то он будет возвращаться сам в себя (RESET имеется в виду)
Пользуюся AVR Studio, в ней сразу видна эта ошибка.
- sheva_s
- Грызет канифоль
- Сообщения: 256
- Зарегистрирован: Пт апр 27, 2007 14:32:48
- Откуда: Украина Кривой Рог
- Контактная информация:
Да все впорядке макетка используеться с другими программами все работает на отлично , а теперь нужно написать программу вставку для изменения скорости световых эффектов и неполучаеться.Aheir писал(а):С цепями сброса, питания все в порядке?
В одном месте посоветовали вписать такую строчку
ldi temp,0b10000000
out SREG,temp
посмотрел по даташиту дествительно нужно, только программа все равно на девайсе не работает.
- sheva_s
- Грызет канифоль
- Сообщения: 256
- Зарегистрирован: Пт апр 27, 2007 14:32:48
- Откуда: Украина Кривой Рог
- Контактная информация:
Тут есть не большое НО:метки прерывания не находятся в RESETe - это идет настройка векторов прерывания см. Обучалка радиокот http://www.radiokot.ru/start/mcu_fpga/avr/10/ , а прерывание по INT_O задокументированое по идеи должно срабатывать только оно.Mr.Moss писал(а):Ща спою.![]()
1.Не верное размещение метки RESET, все метки прерываний (даже если они не работают не должны находится в RESETе, иначе по сработке прерывания программа будет вываливаться в RESET)
2.В обработчике RESET НЕЛЬЗЯ писать выход из прерывания, кудаже он будет выходить?
Прерывание RESET работает только с момента включения и если поставить оператор reti то он будет возвращаться сам в себя (RESET имеется в виду)
Пользуюся AVR Studio, в ней сразу видна эта ошибка.
Если поставить метку прерывание по RESET в начеле настройки программы то она начинает запускаться на девайсе но работает не очень коректно , как ей вздумаеться.
Я тоже пользуюсь AVR Studio если там поставить старт программы с прерывания INT_O и просимулировать то все отрабатываеться нормально.[/url]
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
Слава богу CVAVR сам расставляет правильно.sheva_s писал(а):Если поставить метку прерывание по RESET в начеле настройки программы то она начинает запускаться на девайсе но работает не очень коректно , как ей вздумаеться.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
RESET надо тоже задокументировать, а ниже написать метку RESET, если вы хотитете так чтоб как в обучалке!
Но оператор RETI там совершенно не нужен!!! Там только нужно глобально разрешить прерывания.
Да и в обработчике прерывания INT_0 два оператора выхода из прерывания, я не думаю что будет корректно работать.
Ну а если метку RESET переставляете и работает, хот и как ей вздумается, то исчите ошибку в теле программы.
Но оператор RETI там совершенно не нужен!!! Там только нужно глобально разрешить прерывания.
Да и в обработчике прерывания INT_0 два оператора выхода из прерывания, я не думаю что будет корректно работать.
Ну а если метку RESET переставляете и работает, хот и как ей вздумается, то исчите ошибку в теле программы.
где взать или скачать include tn2313def.inc, ,без него немог
где взать или скачать include tn2313def.inc, ,без него немогу приступить к прошивке,очень нужен !!!!!!!!!!!!!!!!!!!!!!!!
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
для прошивки он не нужен.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Для knyaz*. По теме http://www.radiokot.ru/forum/viewtopic.php?t=8473
Попробуйте объявить Вашу переменную int temp; как volatile int temp;
Возможно, компилятор при оптимизации программы, кэширует эту переменную в регистрах.
Попробуйте объявить Вашу переменную int temp; как volatile int temp;
Возможно, компилятор при оптимизации программы, кэширует эту переменную в регистрах.


