реклама на сайте
подробности

 
 
> Микроконтроллер сбрасывается..., Несоответствие между заголовочным файлом и Datasheet...
Freeze Anti
сообщение Dec 25 2007, 09:07
Сообщение #1


Частый гость
**

Группа: Новичок
Сообщений: 153
Регистрация: 29-03-07
Из: Саратов
Пользователь №: 26 613



Здравствуйте...

У меня к вам вот такой вопрос...

Я пишу программу для ATmega32... Пишу ее в WinAVR 20060421... Так вот...
После команды sei() у меня происходит сброс... Есть предположения, почему он происходит...

Я просмотрел заголовочный файл iom32.h и обнаружил небольшое несоответствие с даташитом... В общем... В заголовочном файле написано...

Код
/* ADC Conversion Complete */
#define ADC_vect            _VECTOR(16)
#define SIG_ADC                _VECTOR(16)


а читая даташит, я вижу...

Цитата
Table 18. Reset and interrupt vectors
Vector No. | Program address | Source | Interrupt definition
. . .
16 | $01E | USART, TXC | USART, Tx Complete
17 | $020 | ADC | ADC Conversion Complete
. . .


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

Спасибо за внимание...


--------------------
!!! All you need is LOVE !!!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
VassiL
сообщение Dec 25 2007, 11:50
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 20-12-07
Из: Таганрог
Пользователь №: 33 471



Цитата(aesok @ Dec 25 2007, 12:56) *
Ошибки в зоголовочных файлах нет. Чтобы поправить вас нужно увидеть ваш код.
VassiL - тоже код, версию WinAVR и варинги компилятора.

Анатолий.


Хочу заставить моргать светодиод с помощью данного кода
используя прерывание
Версия WinAVR 20050214
Ставил версию 2007 года на другой машине - таже история.

#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#define Freq 4000000

INTERRUPT(SIG_OVERFLOW1)
{
//Инициализируем счетный регистр значением 61630
TCNT1 = 0x10000 - (Freq / 1024);
PORTB ^= 0x01;
}

int main (void)
{
DDRB = 0x01; //Вывод 0 порта В - Выход
TCCR1A = 0; // T/C1 отсоеденен от вывода ОС1, режим ШИМ отключен
TCCR1B = 5; // Коэф. деления частоты системной синхронизации = 1024
TCNT1 = 0x10000 - (Freq / 1024); //Инициализируем счетный регистр
TIFR = 0; //Сбрасываем все флаги прерываний от T/C1
TIMSK = 0x80; //Разрешаем прерывание при переполнении T/C1
GIMSK = 0; //Запрет внешних прерываний
sei(); //Общее разрешение прерываний
while(1); //Ожидаем прерывания от T/C1 каждую секунду
}

После компиляции имеются варнинги:
c:/program files/win avr/bin/../avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete. Use <avr/interrupt.h>."
../LEDBlink.c:10: warning: return type defaults to 'int'
../LEDBlink.c: In function 'INTERRUPT':
../LEDBlink.c:14: warning: control reaches end of non-void function
Build succeeded with 3 Warnings...
Go to the top of the page
 
+Quote Post
Qwertty
сообщение Dec 25 2007, 11:56
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527



Цитата(VassiL @ Dec 25 2007, 14:50) *
Хочу заставить моргать светодиод с помощью данного кода
используя прерывание
Версия WinAVR 20050214
Ставил версию 2007 года на другой машине - таже история.

...

После компиляции имеются варнинги:
c:/program files/win avr/bin/../avr/include/avr/signal.h:36:2: warning: #warning "This header file is obsolete. Use <avr/interrupt.h>."
../LEDBlink.c:10: warning: return type defaults to 'int'
../LEDBlink.c: In function 'INTERRUPT':
../LEDBlink.c:14: warning: control reaches end of non-void function
Build succeeded with 3 Warnings...

Уберите #include <avr/signal.h>
Измените INTERRUPT(SIG_OVERFLOW1) на ISR(SIG_OVERFLOW1)
И варнинги исчезнут.

Сообщение отредактировал Qwertty - Dec 25 2007, 12:01
Go to the top of the page
 
+Quote Post
VassiL
сообщение Dec 25 2007, 12:29
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 20-12-07
Из: Таганрог
Пользователь №: 33 471



Цитата(Qwertty @ Dec 25 2007, 14:56) *
Уберите #include <avr/signal.h>
Измените INTERRUPT(SIG_OVERFLOW1) на ISR(SIG_OVERFLOW1)
И варнинги исчезнут.


Спасибо большое! Все откомпилировалось без предупреждений. Прошил проц и он работает!
У меня теперь другая проблема:
Когда запускаю симулятор, выскакивает вот такая ошибка:
**Runtime Error!
This application has requested the Runtime to terminate it in an unusual way.
и просят связаться с тех поддержкой для получения большей информации**
Предлагается нажать ОК
После успешного нажатия последней, AVR studio закрывается.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Freeze Anti   Микроконтроллер сбрасывается...   Dec 25 2007, 09:07
- - VassiL   Здравствуйте! У меня проблема такого плана.. Н...   Dec 25 2007, 09:28
- - Freeze Anti   Вот я о том же и говорю... Попробуйте в библиотеке...   Dec 25 2007, 09:33
- - aesok   Цитата(Freeze Anti @ Dec 25 2007, 12:07) ...   Dec 25 2007, 09:56
- - Палыч   Цитата(Freeze Anti @ Dec 25 2007, 12:07) ...   Dec 25 2007, 10:26
- - Freeze Anti   Код#include <avr/io.h> #include <util/...   Dec 25 2007, 10:48
|- - aesok   1- INTERRUPT(SIG_ADC) Вам не нужен INTERRUPT(...)...   Dec 25 2007, 11:37
|- - Qwertty   Цитата(aesok @ Dec 25 2007, 14:37) 3. _de...   Dec 25 2007, 11:53
|- - aesok   Цитата(Qwertty @ Dec 25 2007, 14:53) А в ...   Dec 25 2007, 11:58
- - Kuzmi4   2 Freeze Anti - думаю что у вас есчё что-то вызыва...   Dec 25 2007, 11:24
- - Qwertty   А WDT случайно не включен фьюзом? И сбрасывается -...   Dec 25 2007, 11:38
|- - aesok   1. Пост номер 8, ответ 1. 2. #define Freq 4000000...   Dec 25 2007, 11:55
||- - Freeze Anti   Цитата(aesok @ Dec 25 2007, 14:55) 2. #de...   Dec 25 2007, 12:23
||- - aesok   Цитата(Freeze Anti @ Dec 25 2007, 15:23) ...   Dec 25 2007, 12:29
|- - aesok   Цитата(VassiL @ Dec 25 2007, 15:29) Спаси...   Dec 25 2007, 12:32
|- - VassiL   Цитата(aesok @ Dec 25 2007, 15:32) Версии...   Dec 25 2007, 12:35
- - Freeze Anti   спасибо всем большое... программа больше не сбрасы...   Dec 25 2007, 12:50
- - aesok   Цитата(Freeze Anti @ Dec 25 2007, 15:50) ...   Dec 25 2007, 12:58
- - VassiL   Цитата(aesok @ Dec 25 2007, 15:58) А вот ...   Dec 25 2007, 13:20
|- - Qwertty   Цитата(VassiL @ Dec 25 2007, 16:20) Я про...   Dec 25 2007, 13:26
|- - VassiL   Цитата(Qwertty @ Dec 25 2007, 16:26) Wina...   Dec 25 2007, 13:30
|- - IgorKossak   Цитата(Qwertty @ Dec 25 2007, 15:26) Wina...   Dec 25 2007, 13:45
|- - VassiL   Цитата(IgorKossak @ Dec 25 2007, 16:45) Б...   Dec 25 2007, 13:53
- - Freeze Anti   Цитата(aesok @ Dec 25 2007, 15:58) А вот ...   Dec 25 2007, 13:25


Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 18:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01404 секунд с 7
ELECTRONIX ©2004-2016