leon20
31.07.2007, 21:51
hallo an alle,
ich möchte denn watchdog bei meinem atmega128 implementieren
und zwar so das wenn ein signal am port pd3 (high) anliegt der timer vom
watchdog zurück gesetzt wird. falls kein high anliegt soll der watch dog überlaufen nach 1sec.
nur mein prob. ist das ich denn watchdog noch nie verwendet habe und nicht weiß wie ich ihn einbinden soll.
ich brauch hilfe bevor ich einen blödsinn mach ](*,) :)
das ist mein jetziger code.:
#include <stdio.h>
#include <avr/io.h>
#include <avr/wdt.h>
#include <util/delay.h>
#include <math.h>
#include <avr/pgmspace.h>
#define LCD_DDR DDRB
void delay_ms(unsigned int period);
#include <glcd-Display3000-211.h>
extern const prog_uint8_t Font1[], Font2[];
#include "bild1.h"
#include "Bild2.h"
#include "Bild3.h"
extern const prog_uint16_t *Bitmap;
int main(void)
{
LCD_Init();
delay_ms(1000);
DDRD = 0;
PORTD |= (1 << PD1) | (1 << PD6) | (1 << PD3) ;
while(1)
{
if (PIND & (1 <<PD1))
{
Orientation = Portrait180;
LCD_Bitmap_256high(0, 0, 131, 175, Bild1, Table_Bild1, true);
} else
{
Orientation = Portrait180;
LCD_Bitmap_256high(0, 0, 131, 175, Bild3, Table_Bild3, true);
delay_ms(5000);
}
if (PIND & (1 <<PD6))
{
Orientation = Portrait180;
LCD_Bitmap_256high(0, 0, 131, 175, Bild1, Table_Bild1, true);
} else
{
Orientation = Portrait180;
LCD_Bitmap_256high(0, 0, 131, 175, Bild2, Table_Bild2, true);
delay_ms(5000);
}
}
return 0;
}
void delay_ms(uint16_t period)
{
for(unsigned int i=0; i<=period; i++)
_delay_ms(1);
}
ich möchte denn watchdog bei meinem atmega128 implementieren
und zwar so das wenn ein signal am port pd3 (high) anliegt der timer vom
watchdog zurück gesetzt wird. falls kein high anliegt soll der watch dog überlaufen nach 1sec.
nur mein prob. ist das ich denn watchdog noch nie verwendet habe und nicht weiß wie ich ihn einbinden soll.
ich brauch hilfe bevor ich einen blödsinn mach ](*,) :)
das ist mein jetziger code.:
#include <stdio.h>
#include <avr/io.h>
#include <avr/wdt.h>
#include <util/delay.h>
#include <math.h>
#include <avr/pgmspace.h>
#define LCD_DDR DDRB
void delay_ms(unsigned int period);
#include <glcd-Display3000-211.h>
extern const prog_uint8_t Font1[], Font2[];
#include "bild1.h"
#include "Bild2.h"
#include "Bild3.h"
extern const prog_uint16_t *Bitmap;
int main(void)
{
LCD_Init();
delay_ms(1000);
DDRD = 0;
PORTD |= (1 << PD1) | (1 << PD6) | (1 << PD3) ;
while(1)
{
if (PIND & (1 <<PD1))
{
Orientation = Portrait180;
LCD_Bitmap_256high(0, 0, 131, 175, Bild1, Table_Bild1, true);
} else
{
Orientation = Portrait180;
LCD_Bitmap_256high(0, 0, 131, 175, Bild3, Table_Bild3, true);
delay_ms(5000);
}
if (PIND & (1 <<PD6))
{
Orientation = Portrait180;
LCD_Bitmap_256high(0, 0, 131, 175, Bild1, Table_Bild1, true);
} else
{
Orientation = Portrait180;
LCD_Bitmap_256high(0, 0, 131, 175, Bild2, Table_Bild2, true);
delay_ms(5000);
}
}
return 0;
}
void delay_ms(uint16_t period)
{
for(unsigned int i=0; i<=period; i++)
_delay_ms(1);
}