hmmm also ich bin auch gerade am anfangen...
wie sieht deine schaltung aus?
hast du transistoren an der gemeinsamen kathode der segmente oder sowas?
hast mal die 7segment anzeige getestet ohne das multiplexen ???
ich hab bei mir mal drei taster an port d und ein segment an port c gehangen und etwas rumexperimentiert, hier mal mein aktueller code ...
funktion: er zeigt ne null wenn ich den einen taster aus hab, beim betätigen verschwindet die null.
drück ich den taster an d.2 (interrupt) wird die schleife unterbrochen und er zählt von 6 bis 0 runter ...
Code:
'testsoftware v 0.1
config porta = output
Config Portc = Output
Config Pind.0 = Input ' kann man auch kürzer schreiben - egal
Config Pind.1 = Input 'konfiguriert die ports d 0,1,2 als input
Config Pind.2 = Input
Portd.0 = 1 'pullup-widerstände ein
Portd.3 = 1
Portd.2 = 1
Dim Nix As Byte , Eins As Byte
Dim Zwei As Byte , Drei As Byte , Vier As Byte , Fuenf As Byte , Sechs As Byte
Dim Sieben As Byte , Acht As Byte , Neun As Byte
Nix = &B1111011
Eins = &B0101000
Zwei = &B1110110
Drei = &B1111100
Vier = &B0101101
Fuenf = &B1011101
Sechs = &B1011111
Sieben = &B1101000
Acht = &B1111111
Neun = &B1111101
On Int0 Int0serv 'bei interrupt int0 gehe zu int0serv
Config Int0 = Rising 'und zwar bei steigender flanke
Enable Int0 'muss auch rein
Enable Interrupts 'und das muss wohl auch rein ...
Porta.0 = 1 'led mal ausschalten
Do 'Beginn der Endlosschleife
If Pind.0 = 1 Then
'nix also die 0 anzeigen
Portc = Nix
Else
'alle LEDs aus
Portc = 0
End If
Loop 'Ende der Endlosschleife
Int0serv: 'bei interrupt von sechs runterzählen
Portc = Sechs
Waitms 500
Portc = Fuenf
Waitms 500
Portc = Vier
Waitms 500
Portc = Drei
Waitms 500
Portc = Zwei
Waitms 500
Portc = Eins
Waitms 500
Portc = Nix
Return
Code-Tags. Männer ! (PicNick)
Lesezeichen