Warum wird die main-routine dauernt neu gelstartet ?
Hi,
beim einfügen der "Selbst-Vorstellung" über die serielle Schnittstelle, mußte ich festsetllen, daß die Zeile
( USART_transmit_string ("Programm zur Spannungsueberwachung 10/2004 "); )
immer wieder aufgerufen wird.
Könnte das am Interrupt liegen ? Habt Ihr irgendwelche Ideen ?
Code:
#include <avr/io.h>
#include <stdlib.h>
#include <avr/signal.h>
#include <avr/interrupt.h>
#include <simple_delayroutinen.c>
#include <io_modul.h>
volatile unsigned int grenzwert;
int hilfs;
SIGNAL (SIG_UART_RECV) {
hilfs=empfange();
}
int main (void) {
grenzwert=800;
//Intialisierung
USART_Init ();
ad_init();
set_id();
v_ref(5);
// Text ausgabe. Wiederholt sich unendlich. Warum ???
USART_transmit_string ("Programm zur Spannungsueberwachung 10/2004 ");
USART_transmit('\n');
USART_transmit('\r');
DDRB = 0xff;
// Variablen
int x=0;
char buffer [10];
unsigned erg=0;
sei (); // Interrupt erlauben
delay_ms(8000); //Einschaltzeitverzögerung
for(;;){
PORTB = 0xff;
for (int i=0;i<=3;i++) // Überwachen der Ports 0 bis i
{
erg=ad_port(i); // Port auslesen
if(erg < grenzwert)
{
PORTB = 0xff-0x02;
delay_ms(1000); // Wenn Wert zu niedrig Pin2 von Port B einschalten
}
}
}
return 0;
}