Keywords: READLB entry not found ; Fusebit ; Fusebits ; falsch ;
falscher ; falsche ; Takt ; Taktrate ; int ; ext ; RC ; OSC ; Oszillator
Gestern habe ich mir im Eifer des Gefechts wieder einmal einen ATMEGA8
abgeschossen indem ich die Fusbits für den Taktgeber falsch eingestellt
habe. Es war mir weder möglich den ATMEGA8 mit einem Quarzoszillator
noch mit einem gewöhnlichen Quarz anzusteuern. Stattdessen verwendete
ich einen zweiten ATMEGA8 der mit folgendem Code / Programm beschrieben
wurde:
GCC
1 | #define F_CPU 8000000
|
2 | #include <avr/io.h>
|
3 | int main(void)
|
4 | {
|
5 | DDRC |= _BV(PC5);
|
6 | PORTC |= 0<<PC5;
|
7 | while (1)
|
8 | {
|
9 | PORTC &= ~_BV(PC5);
|
10 | PORTC |= _BV(PC5);
|
11 | }
|
12 | return (1);
|
13 | }
|
BASCOM
1 | $crystal = 8000000
|
2 | Config Portc = Output
|
3 | Do
|
4 | Portc.5 = 1
|
5 | Portc.5 = 0
|
6 | Loop
|
Dieser zweite ATMEGA8 schaltet PINC5 (28) ständig ein und wieder aus.
Dieser Takt, welcher mit dem internem Oszillator erzeugt wird, reicht
aus, um den "gestörten" ATMEGA8 wieder fit zu bekommen. Der zuvor
"gestörte" ATMEGA8 lässt sich so einstellen, dass er, im Anschluss an
diese Prozedur, wieder mit internem oder externem Taktgeber betrieben
werden kann.