Was genau meinst du? Ich verstehe die Frage leider nicht so ganz.
Was genau meinst du? Ich verstehe die Frage leider nicht so ganz.
Das mit Config Port und Config Pin ist in der Tat verwirrend.muss ich jetzt beim input immer eine zahl und einen buchstaben eingeben und beim output nur buchstabe? tut mir leid, ich stehe total auf dem schlauch
Eindeutig geht´s mit dem DDR-Register (DDR = Data Direction Register):
DDRX.Y = 0 bedeutet: Anschluss X.Y ist ein Eingang
DDRX.Y = 1 bedeutet: Anschluss X.Y ist ein Ausgang
Da bei Power-On-Reset alle DDDR-Register den Wert 0 enthalten, sind alle I/O-Anschlüsse zunächst mal Eingänge. Für diese Aufgabe muss man sie nicht konfigurieren, das sind sie ganz von alleine.
Soll ein Anschluss ein Ausgang werden, muss das entsprechende Bit im DDR-Register auf 1 gesetzt werden. Das kann entweder einzeln geschehen, also z.B.
DDRB.2 = 1
DDRB.3 = 1
DDRB.4 = 1
DDRB.5 = 1
oder Du setzt gleich alle 8 Bits des Registers:
DDRB = &B00111100 ("&B" heißt, dass die folgende Zahl binär ausgeschrieben wird)
Mit diesem Befehl sind die Anschlüsse B5,B4,B3 und B2 Ausgänge, der Rest sind Eingänge.
Und wenn Du den PullUp-Widerstand eines Eingangs aktivieren willst, musst Du eine 1 in das entsprechende PORT-Register schreiben. Also für Deine beiden Eingänge also z.B.
PORTB.0 = 1
PORTB.1 = 1
In anderen Worten:
1. Ob Ein- oder Ausgang, legt das DDR-Register fest.
2. Ist der Anschluss ein Ausgang, legt das PORT-Register seinen Pegel fest.
3. Ist er ein Eingang legt das PORT-Register fest, ob der PullUp-Widerstand aktiviert wird.
Jetzt etwas klarer?
Allgemein ist das Programm richtig geschrieben.
Wie Sauerbruch schon schreibt das aktivieren der internen Pullups (ist unten mal bei dein Programm eingebunden)
Allgemein versteh ich auch nicht warum du ein Attiny verwendest und den Reset aus programmierst.
Was für ein Programmiergerät verwendest du?
Überträgst du den Hexcode mit Basom oder mit ein anderes Programm.
Ich glaube eher das in der Richtung was nicht richtig eingestellt ist und dadurch keine (fehlerhafte) Übertragung erfolgt.
mfg
Rick
$regfile = "attiny85.dat"
$crystal = 1000000
Config Pinb.0 = Input
Portb.0 = 1
Config Pinb.1 = Input
Portb.1 = 1
Config Portb.2 = Output
Config Portb.3 = Output
Config Portb.4 = Output
Config Portb.5 = Output
Do
If Pinb.0 = 1 And Pinb.1 = 1 Then
Portb.2 = 1
Portb.4 = 0
Portb.3 = 1
Portb.5 = 0
Else
End If
If Pinb.0 = 0 And Pinb.1 = 0 Then
Portb.2 = 0
Portb.4 = 1
Portb.3 = 0
Portb.5 = 1
Else
End If
If Pinb.0 = 0 And Pinb.1 = 1 Then
Portb.2 = 1
Portb.4 = 0
Portb.3 = 0
Portb.5 = 1
Else
End If
If Pinb.0 = 1 And Pinb.1 = 0 Then
Portb.2 = 0
Portb.4 = 1
Portb.3 = 1
Portb.5 = 0
Else
End If
Loop
End
Lesezeichen