Hallo,
ich habe mir folgenden kleinen Code geschrieben um nen 5v
Miniatur-Lüfter über meinen Atmega8 anzusteuern.
1 | int main(void)
|
2 | {
|
3 | DDRC |= (1<<PC5); // LED as Output
|
4 | PORTC |= (1<<PC5); // turn LED off
|
5 |
|
6 | DDRB |= (1<<PB0);
|
7 |
|
8 | DDRD &=~ (1<<PD2); // BUTTON as Input
|
9 | PORTD |= (1<<PD2);
|
10 |
|
11 | while(1)
|
12 | {
|
13 | if (!(PIND & 1<<PD2))
|
14 | {
|
15 | PORTC ^= (1<<PC5);
|
16 | PORTB ^= (1<<PB0);
|
17 | _delay_ms(300);
|
18 | }
|
19 | }
|
20 | }
|
Den kleinen Lüfter habe ich laut Anhang angeschlossen.
Das Gate hängt am PB0 Port. VCC zapfe ich vom VCC des Boards ab. GND
stammt ebenfalls vom Board.
Wenn ich den Button drücke würde ich erwarten das der Lüfter anspringt
und die LED leuchtet. Was aber passiert ist das der Lüfter anspringt,
die LED NICHT anspringt & das Board sich nur noch über einen Reset
"retten" lässt.
Es hängt sich praktisch auf.
Entweder man sollte grundsätzlich keine Last an das Board hängen oder
die
Schaltung die ich umsetzen möchte ist noch nicht komplett.
Wäre für Ideen sehr dankbar. Links zum Verstehen & Nacharbeiten nehme
ich auch gerne an.
mfg
µc