Hallöle.
Ich habe ein Problem beimlesen und ausgeben von Bits an einem Port.
Und zwar habe ich folgendes Vor:
Ich möchte 4 Signallquellen auswerten, die an Port C an einem AT90S2333 anliegen. Dies sind PWM signale.
Nachdem ich den Wert erfast habe, möchte ich diese (nach einer späteren bearbeitung) wieder auf einem anderen Port ausgeben.
Das Problem, das ich jezt habe ist, das ich an allen Ausgangs-Pins, die ich verwenden möchte, das gleiche signal anliegen habe.
Konfuser wirds dadurch noch, das es auch egal ist, wo ich das Signal rein schicke. Es kommt von jedem eingang aus auf allen ausgängen an.
Dann fällt mir noch auf, das ich unterschiedliche ausgaben habe. auf dem lezten ausgang (pin 3) kommt es ganricht an, bzw. nur dann wenn ich das fast volle PWM signal sende
an Pin 2 kommt es pulsend an .. ca. alle 2 PWM-Intervalle, an pin 1 ist es fast genauso wie an Pin 0.
Umgesezt hab ich das so:
Code:
$regfile = "2333def.dat"
$crystal = 11059200
Config Portd = Output
Config Portc = Input
Dim X As Byte
Dim Signal_hl As Byte
Do
For X = 1 To 4 Step 1
Signal_hl = 0
Select Case X
Case 1 : If Pinc.0 = 1 Then Signal_hl = 1
Case 2 : If Pinc.1 = 1 Then Signal_hl = 1
Case 3 : If Pinc.2 = 1 Then Signal_hl = 1
Case 4 : If Pinc.3 = 1 Then Signal_hl = 1
End Select
If Signal_hl = 1 Then
Select Case X
Case 1 : Set Portd.0
Case 2 : Set Portd.1
Case 3 : Set Portd.2
Case 4 : Set Portd.3
End Select
Else
Select Case X
Case 1 : Reset Portd.0
Case 2 : Reset Portd.1
Case 3 : Reset Portd.2
Case 4 : Reset Portd.3
End Select
End If
Next
Loop
End
Ich verstehe ganz und garnicht, warum dem so ist.
Kann mir das mal jemand erklären?
JimJim
XUN
Lesezeichen