Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 27.12.2010, 11:27  
sanstan
Прописка
 
Регистрация: 06.03.2007
Сообщений: 144
Сказал спасибо: 22
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
sanstan на пути к лучшему
По умолчанию Программа сбрасывается при включении sei()

Подскажите, что можно сделать по такому вопросу:

в GCC:
//инициализирую таймер0:
Код:
TCCR0A=0x83;
  TCCR0B=0x02;
  TCNT0=0x00;
  OCR0A=0x00;
  OCR0B=0x00;
//включаю прерывания:
Код:
sei();
while(1){
}
Программа сбрасывается и снова начинает инициализацию.
В чем проблема?
Реклама:
sanstan вне форума  
Непрочитано 27.12.2010, 11:55  
Nfc
Прописка
 
Регистрация: 11.10.2008
Сообщений: 132
Сказал спасибо: 8
Сказали Спасибо 35 раз(а) в 30 сообщении(ях)
Nfc на пути к лучшему
По умолчанию Re: программа сбрасывается при включении sei()

Ну дык, а где ваш код обработчика прерывания?
Nfc вне форума  
Непрочитано 27.12.2010, 12:37  
sanstan
Прописка
 
Регистрация: 06.03.2007
Сообщений: 144
Сказал спасибо: 22
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
sanstan на пути к лучшему
По умолчанию Re: программа сбрасывается при включении sei()

Вот обработчик прерывания:
[CODE]#define Ntap 8
unsigned char dataOut[Ntap];

Код:
ISR (TIM0_OVF_vect){
     OCR0A=dataOut[0]; 
}
sanstan вне форума  
Непрочитано 27.12.2010, 13:29  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,955
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию Re: Программа сбрасывается при включении sei()

Неплохо бы еще знать, для какого МК написано это все.
И видеть всю программу, а не кусочки
Я, например,не вижу - где разрешено прерывание таймера (TIMSK) и не вижу, как инициализируется WDT
И как все проверялось - в железе, в эмуляторе каком-нибудь?
__________________
[ жизнь приятна и красива, если выпить литр пива ]
nml вне форума  
Непрочитано 27.12.2010, 13:51  
terminator_seva
Вид на жительство
 
Аватар для terminator_seva
 
Регистрация: 03.06.2010
Сообщений: 452
Сказал спасибо: 35
Сказали Спасибо 168 раз(а) в 133 сообщении(ях)
terminator_seva на пути к лучшему
По умолчанию Re: Программа сбрасывается при включении sei()

Такое поведение может быть, если код компилится для одного МК, а заливается в другой, где не совпадают номера векторов прерываний.
terminator_seva вне форума  
Непрочитано 27.12.2010, 14:09  
sanstan
Прописка
 
Регистрация: 06.03.2007
Сообщений: 144
Сказал спасибо: 22
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
sanstan на пути к лучшему
По умолчанию Re: Программа сбрасывается при включении sei()

Вот весь код:
Код:
#include ‹avr/io.h›
#include ‹avr/interrupt.h›
/**************************************************  ***
Project : 
Version : 
Date    : 17.11.2010

Chip type           : ATmega48
Clock frequency     : 8,000000 MHz
Memory model        : Small
External RAM size   : 0
Data Stack size     : 128
**************************************************  ***/

#define Ntap 8   

char temp; 
unsigned char dataIn[Ntap]; //output samples

// Timer 0 overflow interrupt service routine
ISR (TIM0_OVF_vect){

     OCR0A=dataIn[0];   //   out[0]    
}

void init(){
   char n;
  for(n=Ntap-1;n›0;n++){
    dataIn[n]=0; 
  }   
}

// Declare your global variables here                                                                                                                                                                                                                                                                                                                                                                                                                       
void main(void){
  // Declare your local variables here

  // Crystal Oscillator division factor: 1
 // #pragma optsize-
  CLKPR=0x80;
  CLKPR=0x00;
 // #ifdef _OPTIMIZE_SIZE_
 // #pragma optsize+
 // #endif

  // Input/Output Ports initialization
  // Port B initialization
  // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=Out Func0=Out 
  // State7=T State6=T State5=T State4=T State3=T State2=T State1=0 State0=0 
  PORTB=0x00;
  DDRB=0x03;

  // Port C initialization
  // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
  // State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
  PORTC=0x00;
  DDRC=0x00;

  // Port D initialization
  // Func7=In Func6=Out Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
  // State7=T State6=0 State5=T State4=T State3=T State2=T State1=T State0=T 
  PORTD=0x00;
  DDRD=0x40;

  // Timer/Counter 0 initialization
  // Clock source: System Clock
  // Clock value: 1250,000 kHz   - ÷àñòîòà äëÿ ñèíõðîíèçàöèè ñ ÀÖÏ (4883)
  // Mode: Fast PWM top=FFh
  // OC0A output: Non-Inverted PWM
  // OC0B output: Disconnected
  TCCR0A=0x83;
  TCCR0B=0x02;
  TCNT0=0x00;
  OCR0A=0x00;
  OCR0B=0x00;

    TIMSK0=0x01;

	sei();// Global enable interrupts
 	init();
   while (1)
        {
 
		PORTD=0x23;
        }
}
sanstan вне форума  
Непрочитано 27.12.2010, 14:26  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,955
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию Re: Программа сбрасывается при включении sei()

Код:
  for(n=Ntap-1;n›0;n++){
    dataIn[n]=0;
Может, тут поставить n-- ?
__________________
[ жизнь приятна и красива, если выпить литр пива ]
nml вне форума  
Непрочитано 27.12.2010, 14:42  
sanstan
Прописка
 
Регистрация: 06.03.2007
Сообщений: 144
Сказал спасибо: 22
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
sanstan на пути к лучшему
По умолчанию Re: Программа сбрасывается при включении sei()

Да, тут действительно ошибка , но ничего не изменилось:

Код:
#include ‹avr/io.h›
#include ‹avr/interrupt.h›

unsigned char dataIn[8]; //output samples

ISR (TIM0_OVF_vect){
     OCR0A=0x56;   //   out[0]    
}
                                                                                                                                                                                                                                                                                                                                                                                                             
void main(void){
  CLKPR=0x80;
  CLKPR=0x00;
 
  PORTB=0x00;
  DDRB=0x03;
 
  PORTD=0x00;
  DDRD=0x40;
 
  TCCR0A=0x83;
  TCCR0B=0x02;
  TCNT0=0x00;
  OCR0A=0x00;
  OCR0B=0x00;
  TIMSK0=0x01;
 
	sei();// Global enable interrupts
 
	while (1){
 		PORTD=0x23;
	}
}
Вообще все удалил ненужное. Результат прежний.
sanstan вне форума  
Непрочитано 27.12.2010, 14:51  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,955
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию Re: Программа сбрасывается при включении sei()

Та ошибка вызывала бы полную очистку ОЗУ, но прикинул - в том месте, наверное, не смертельно. Правда, фиг знает, как ваш компилятор строит код и память распределяет. У ИАРа бы не порушило.

В чем проверяете-то? В исправленном - не пойму, где определяется тип МК - куда вектор будет определен?
__________________
[ жизнь приятна и красива, если выпить литр пива ]
nml вне форума  
Непрочитано 27.12.2010, 15:04  
terminator_seva
Вид на жительство
 
Аватар для terminator_seva
 
Регистрация: 03.06.2010
Сообщений: 452
Сказал спасибо: 35
Сказали Спасибо 168 раз(а) в 133 сообщении(ях)
terminator_seva на пути к лучшему
По умолчанию Re: Программа сбрасывается при включении sei()

для меги48 нет прерывания TIM0_OVF_vect, а есть TIMER0_OVF_vect.

Внимательней читайте документацию. (avr-libc-user-manual.pdf)
terminator_seva вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бухает сабик в машине при включении shutlpole Аудиотехника 9 10.01.2012 13:15
Ограничитель броска тока при включении лампы накаливания XVitaha Источники питания и свет 159 25.10.2011 08:09
iiyama hm704utc мигает лампочка при включении и не включается Kayman036 Видеотехника 0 08.12.2010 08:03
Отключается ИБП при включении телевизора ANDAND Источники питания и свет 42 11.04.2010 19:25
[Решено] Включение подсветки (ЛБ 36Вт) при включении телевизора km310 Источники питания и свет 0 02.04.2010 09:40


Часовой пояс GMT +4, время: 22:02.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot