037
09.03.2019, 17:01 Uhr
wpwsaw
Default Group and Edit
|
Hallo sven,
das hatte ich alles schon korrigiert. Von der Sache kann mein BASCOM Code nicht fehlerhaft sein, da er ja funktioniert. Ich tippe eher auf die Konfigurationsbefehle. Hier mein Code
;############################################################################## ; ;' --------------------------------------------------- ' ' Anzeige Wochentag auf FV651g über CD4096 ' mit ATTiny 13 ' ' ---------------------------------------------------- ; ;****************************************************************************** ') ' 'Konfiguration $regfile = "attiny13.dat" $crystal = 9600000 ' 9,6 MHz $hwstack = 4 $swstack = 4 $framesize = 10 ' ' 'Ports config PORTB.3=OUTPUT ' Daten Port Data_out Alias DDRB.3 config PORTB.2=OUTPUT ' Takt Port Clock_out Alias DDRB.2 config PORTB.0=OUTPUT ' Strobe Port Strobe_out Alias DDRB.0 ' config PORTB.5=input portb.5 = 1 config PORTB.4=input portb.4 = 1 config PORTB.1=INPUT ' Interrupt Eingang PORTB.1 = 1 ' mit Pull Up Widerstand ' ' 'Interrupt on int0 interrupt ' Interrupt UP-Routine für INT0 config Int0=FALLING ' INT0 mit H-L Flanke enable Int0 ' erlaube INT0 enable interrupts ' erlaube Interrupts ' ' 'Festlegungen UPs und Programme ' Declare Sub Send_bytes() ' Unterprogramm Byte senden
Dim Wtag As Byte 'Wochentag 0 bis 6 Dim ZeigZ As Byte 'Zeiger für Zeichenbildtabelle Dim sign As Byte 'Datenbyte für Display Dim Nsign As Byte 'negiertes Datenbyte für Display Dim Zanf As Byte 'Zaehler für Schleife Dim Zend As Byte 'Zaehler Zeichen Dim ZByte As Byte 'Zaehler Byte Dim Zzbyte as byte 'Zähler Z Anzeige Dim ZAnz As Byte 'Zähler Anzeige DIM btt as byte 'BIT Zähler DIM Intbit as Byte 'Variabel Interrupt Bit ' ' 'definierte Zustände ' Wtag = 0 'setze Wochentag auf 0 = Montag Set Clock_out 'setze Taktpegel am CD4094 auf 0 Set Data_out 'setze Datenpegel am CD4094 auf 0 Set Strobe_out 'setze Strobepegel am CD4094 auf 0 ' ' ' '// ### Hauptprogramm Wochentagausgabe ###
'// Tabelle für 14 Seg.-Zeichen, beginnend mit Montag '// Zu jedem Wochentag gehören 30 Bytes '// Je drei Bytes gehören zu einem Zeichen '// Das erste Byte ist das HB, dann MB und dann LB ' 'Beginn der Haupt-Programmschleife Do
'// Ausgabe Wochentag 30 Byte
ZeigZ = Wtag * 30 ' setzen Zeiger Zeichen Zend = ZeigZ + 29 ' Ende Zeichenausgabe ' ' Ausgabe 10x 3 Byte For ZAnz = ZeigZ to Zend step 3 reset strobe_out ' Strobe an CD4094 auf 1 ' 'Ausgabe 3 Byte for zbyte = 0 to 2 zzbyte = zbyte + zanz ' Position in Zeichentabelle sign = Lookup (zzbyte , TabelleZ) ' Byte aus Tabelle lesen nsign = sign xor &HFF ' Byte bitweise negieren Call Send_bytes ' Sende negiertes Byte an CD4094 next zbyte ' nächstes der 3 Bytes ' set strobe_out ' Strobe an CD4094 auf 0 waitms 1 ' Wartezeit 1ms ' next ZAnz ' nächsten 10 Byte '
Loop ' Ende der Haupt-Programmschleife ' ' 'Unterprogramme ' 'Unterprogramm Byte senden Sub Send_bytes()
'// Subroutine: Sendet ein Byte seriell '// Ansteuerung der FV651G über 3x CD4094 (Seriell/Parallelwandler mit Latch) ' ' for btt = 7 to 0 step -1 ' Bits zählen PORTB.3 = nsign.btt ' Bit auf Port B3 set clock_out ' Taktpegel am CD4094 auf 0 waitus 8 ' L-Pegellänge 5µs reset clock_out ' Taktpegel am CD4094 auf 1 waitus 3 ' H-Pegellänge 5µs next btt ' nächstes Bit ' End Sub ' Ende Unterprogramm ' ' 'Interrupt Service Routine für INT0 ' interrupt: ' disable INT0 ' sperre Interrupt INT0 reset Strobe_out Wtag = Wtag + 1 ' erhöhen WT um 1 if wtag = 7 then wtag = 0 ' Test auf Sonntag, wenn ja dann 0 = Montag ' notInt: intbit = PORTb.1 ' Abrage InterruptEingang if intbit = 0 then goto notint ' warten auf H-Pegel = kein Interrupt set strobe_out enable INT0 ' erlaube Interrupt INT0 ' return ' Ende Unterprogramm ' ' 'Daten Tabellen ' '############################################################################################################ ' TabelleZ: Data &H48 , &H6C , &H01 , &HC8 , &H26 , &H10 , &H4A , &H2C , &H02 , &H20 , &H82 , &H20 , &H59 , &H26 , &H04 , Data &HC9 , &H06 , &H40 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , Data &HE0 , &HA2 , &H01 , &HA0 , &H82 , &H10 , &H99 , &H06 , &H02 , &H4A , &H2C , &H20 , &HD1 , &H06 , &H04 , Data &H20 , &H82 , &H40 , &H59 , &H26 , &H80 , &HC9 , &H06 , &H08 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , Data &H48 , &H6C , &H01 , &HA0 , &H82 , &H10 , &H20 , &H82 , &H02 , &H20 , &H82 , &H20 , &H4E , &H24 , &H04 , Data &HC8 , &H26 , &H40 , &H88 , &H06 , &H80 , &H59 , &H24 , &H08 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , Data &HE0 , &HA2 , &H01 , &HC8 , &H26 , &H10 , &H4A , &H2C , &H02 , &H4A , &H2C , &H20 , &H99 , &H06 , &H04 , Data &H1B , &H26 , &H40 , &HD1 , &H06 , &H80 , &H20 , &H82 , &H08 , &H59 , &H27 , &H00 , &HC9 , &H16 , &H00 , Data &H19 , &H06 , &H01 , &H1B , &H26 , &H10 , &H99 , &H06 , &H02 , &HA0 , &H82 , &H20 , &H20 , &H82 , &H04 , Data &H59 , &H26 , &H40 , &HC9 , &H06 , &H80 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , Data &HD1 , &H06 , &H01 , &H59 , &H26 , &H10 , &H48 , &H6C , &H02 , &HD1 , &H06 , &H20 , &H20 , &H82 , &H04 , Data &H59 , &H26 , &H40 , &HC9 , &H06 , &H80 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , Data &HD1 , &H06 , &H01 , &HC8 , &H26 , &H10 , &H4A , &H2C , &H02 , &H4A , &H2C , &H20 , &H20 , &H82 , &H04 , Data &H59 , &H26 , &H40 , &HC9 , &H06 , &H80 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , ' '************************************************************************************************************ ' '( ;****************************************************************************** ; ;##############################################################################
nur in der originalen LP hat nur PB.3 ein Signal. Datenausgang
ich denke, ich habe den Code gut kommentiert
wpw -- RECORD, CRN1; CRN2; PicoDat; LC80; Poly880; KC85/2,3,4,5 ; KC87; Z1013; BIC; PC1715; K8915; K8924; A7100; A7150; EC1834; und P8000 ab jetzt ohne Tatra813-8x8 aber mit W50LA/Z/A; P3; ES175/2 und Multicar M25 3SK; Barkas B1000 HP Dieser Beitrag wurde am 09.03.2019 um 18:21 Uhr von wpwsaw editiert. |