Hallo Leute,
ich bin am verzweifeln. Ich habe mehrere ATtiny45-20PU zum testen hier rumliegen.
Bei allen ist der PB4 immer high auch wenn ich gar nichts setze. Wenn ich ihn dann als Ausgang definiere sprich DDRB |= (1<<4); und dann PORTB &= ~(1<<4); bleibt die LED sogar an.
Alle anderen Ports machen was sie sollen. Hat jemand eine Idee?
Fuse sind alle Standard.
C Code (Projekt hat auch ATtiny45 als CPU)
Auch wenn ich jetzt nicht vor der While schleife PB4 blinken lasse sondern genau wie die anderen 4 Ausgänge mit wechseln möchte bleibt sie dauerhaft an, man sieht aber an der LED Helligkeit das der ATtiny was tut.
Jemand eine Idee?
Grüße
ich bin am verzweifeln. Ich habe mehrere ATtiny45-20PU zum testen hier rumliegen.
Bei allen ist der PB4 immer high auch wenn ich gar nichts setze. Wenn ich ihn dann als Ausgang definiere sprich DDRB |= (1<<4); und dann PORTB &= ~(1<<4); bleibt die LED sogar an.
Alle anderen Ports machen was sie sollen. Hat jemand eine Idee?
Fuse sind alle Standard.
C Code (Projekt hat auch ATtiny45 als CPU)
Code:
#define F_CPU 800000UL // ATtiny45
#include <avr/io.h>
#include <util/delay.h>
#define HLoben 3 // PB.3
#define HLunten 2 // PB.2
#define HRoben 1 // PB.1
#define HRunten 0 // PB.0
#define bootled 4 //PB.4
void init_io(void) {
DDRB |= (1<<HLoben);
DDRB |= (1<<HLunten);
DDRB |= (1<<HRoben);
DDRB |= (1<<HRunten);
DDRB |= (1<<bootled);
}
int main(void)
{
init_io();
// H Brücke in weiss richtung schalten
PORTB &= ~(1<<HRoben);
PORTB &= ~(1<<HLunten);
PORTB |= (1<<HLoben);
PORTB |= (1<<HRunten);
// test ob reset schleife
PORTB &= ~(1<<bootled);
_delay_ms(500);
PORTB |= (1<<bootled);
_delay_ms(500);
PORTB &= ~(1<<bootled);
_delay_ms(500);
PORTB |= (1<<bootled);
_delay_ms(500);
PORTB &= ~(1<<bootled);
//
int zahl = 55;
while(1)
{
_delay_ms(300);
if( zahl < 50 )
{
// aktivieren weiss richtung
PORTB &= ~(1<<HRoben);
PORTB &= ~(1<<HLunten);
PORTB |= (1<<HLoben);
PORTB |= (1<<HRunten);
zahl = 55;
}
else
{
// aktivieren rot richtung
PORTB |= (1<<HRoben);
PORTB |= (1<<HLunten);
PORTB &= ~(1<<HLoben);
PORTB &= ~(1<<HRunten);
zahl = 40;
}
}
}
Auch wenn ich jetzt nicht vor der While schleife PB4 blinken lasse sondern genau wie die anderen 4 Ausgänge mit wechseln möchte bleibt sie dauerhaft an, man sieht aber an der LED Helligkeit das der ATtiny was tut.
Jemand eine Idee?
Grüße