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

Частый гость
 
Группа: Новичок
Сообщений: 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 !!!
|
|
|
|
|
 |
Ответов
|
Dec 25 2007, 10:48
|

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

|
Код #include <avr/io.h> #include <util/delay.h> #include <stdio.h> #include <avr/interrupt.h>
. . .
unsigned short sCurrentTemp = 0;
INTERRUPT(SIG_ADC) //Обработчик прерывания от интегрированного АЦП { unsigned int ADCData; //Буферная переменная для хранения ADCData = ADCW; //результата преобразования sCurrentTemp = ADCData / 2; ADCSRA = ADCSRA | 0x40; //Устанавливаем разряд ADSC в регистре //ADCSR, чтобы начать новое преобразование }
. . .
void main(void) { char sLogo1[] = {0x4F, 0x41, 0x4F, 0x20, 0x43, 0x48, 0xA8, 0xE1, 0x20, 0x50, 0x4F, 0x43, 0xE0, 0x4F, 0x50, 0x54, 0x45, 0x58, 0x00}; char sLogo2[] = {0x4B, 0xB8, 0xAC, 0x20, 0x30, 0x2E, 0x31, 0x00}; DDRB = 0xFF; //Выводы 0 - 6 порта B - выходы (передача данных и управляющие сигналы) InitLCD(); //Инициализируем ЖК-дисплей ClearLCD(); ShowStr(sLogo1); GoToLine(2); ShowStr(sLogo2); DDRA = 0x00; //Все выводы порта A - входы DDRC = 0x00; //Все выводы порта C - входы ADMUX = 0xC0; //Назначаем в качестве аналогового входа PA0; ADCSRA = 0xEF; /*0b11101111 - активизируем АЦП с коэффициентом деления 128, разрешаем прерывание от АЦП и начинаем преобразование*/ sei(); //Общее разрешение прерываний; _delay_ms(2000); while(1) { if (PINC & 0x02) Control(); else if (PINA & 0x02) Set(); else Measure(); } } Вот... и после функции sei(); контроллер перезапускается... Посмотрел даташит и хедер... возможно, вы и правы... отсчет везде начинается с единицы, но только в хедере нет вектора RESET...
--------------------
!!! All you need is LOVE !!!
|
|
|
|
Сообщений в этой теме
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  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 VassiL Цитата(aesok @ Dec 25 2007, 12:56) Ошибки... Dec 25 2007, 11:50 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 Qwertty Цитата(VassiL @ Dec 25 2007, 14:50) Хочу ... Dec 25 2007, 11:56  VassiL Цитата(Qwertty @ Dec 25 2007, 14:56) Убер... 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
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|