Xeus
30.12.2004, 14:37
Hallo
Ich lass über einen m8 ein signal zählen, und über drei 7 Segmentnzeigen anzeigen.
Das Problem ist, das der Zähler bis jetzt nur bis 9 zählt, weil ich pro Anzeige nur eine Stelle anzeigen lassen kann.
Wie schaffe ich es, das die zweite anzeige mit benutzt wird, wenn die zahlt zweistellig wird,usw.??
Gosub Max7219_setup
Main:
Disp_num = 3 ' Ausgabe Digit
Disp_data = Wr1 ' Zähler var
Gosub Disp_write
' setup max7219 config. registers
Max7219_setup:
Disp_num = &H0C : Disp_data = 0 ' Shutdown On
Gosub Disp_write
Disp_num = 9 : Disp_data = &B0011_0111 ' Decode "B" For 1st 6
Gosub Disp_write
Disp_num = &H0A : Disp_data = &H0F ' Brightness Full
Gosub Disp_write
Disp_num = &H0B : Disp_data = 7 ' # Digits 8
Gosub Disp_write
Disp_num = &H0F : Disp_data = 0 ' Test Off
Gosub Disp_write
Disp_num = &H0C : Disp_data = 1 ' Shutdown Off
Gosub Disp_write
Return
' Sends data to the Max7219 display driver
Disp_write:
Disable Interrupts
Reset Ser_data
Reset Ser_clk
Reset Disp_en
Shiftout Ser_data , Ser_clk , Disp_num , 1
Shiftout Ser_data , Ser_clk , Disp_data , 1
Set Disp_en
Enable Interrupts
Return
Schon mal Danke für die Hilfe,
xeus
Ich lass über einen m8 ein signal zählen, und über drei 7 Segmentnzeigen anzeigen.
Das Problem ist, das der Zähler bis jetzt nur bis 9 zählt, weil ich pro Anzeige nur eine Stelle anzeigen lassen kann.
Wie schaffe ich es, das die zweite anzeige mit benutzt wird, wenn die zahlt zweistellig wird,usw.??
Gosub Max7219_setup
Main:
Disp_num = 3 ' Ausgabe Digit
Disp_data = Wr1 ' Zähler var
Gosub Disp_write
' setup max7219 config. registers
Max7219_setup:
Disp_num = &H0C : Disp_data = 0 ' Shutdown On
Gosub Disp_write
Disp_num = 9 : Disp_data = &B0011_0111 ' Decode "B" For 1st 6
Gosub Disp_write
Disp_num = &H0A : Disp_data = &H0F ' Brightness Full
Gosub Disp_write
Disp_num = &H0B : Disp_data = 7 ' # Digits 8
Gosub Disp_write
Disp_num = &H0F : Disp_data = 0 ' Test Off
Gosub Disp_write
Disp_num = &H0C : Disp_data = 1 ' Shutdown Off
Gosub Disp_write
Return
' Sends data to the Max7219 display driver
Disp_write:
Disable Interrupts
Reset Ser_data
Reset Ser_clk
Reset Disp_en
Shiftout Ser_data , Ser_clk , Disp_num , 1
Shiftout Ser_data , Ser_clk , Disp_data , 1
Set Disp_en
Enable Interrupts
Return
Schon mal Danke für die Hilfe,
xeus