@BlackDevil
Ja, mit nem Schieberegister kann mann sehr schön 7-Segment-Anzeigen aufbauen. PWM brauste nicht, Du legts das Bit, was Du senden willst, an die Datenleitung und ziehst den Takt kurz auf high(da recht schon ein Zyklus).
Code:; ;zu Sendendes Zeichen liegt in R20 Ausgabe:ldi R16,7 ;Zahler für Auszugebene Bits laden aus: clc ;Carry-Register löschen ror R20 ;1 Bit ins Carry-Register schieben brcc aus1 ;wenn 1 dann cbi Portb,Daten ;Datenleitung auf LOH ziehen (ist invertiert) aus1: sbi PortD,Takt ;Takt auf 1 cbi PortD,takt ;Takt auf 0 sbi PortB,Daten ;Datenleitung auf HIGH ziehen (ist invertiert) dec r16 ;Zähler -1 breq aus2 ;wenn alle Bits abgearbeitet dann Sprung zu Ausgabe verlassen rjmp aus ;wenn nicht alles Abgearbeitet dann Sprung zur nächsten Bit-Ausgabe aus2: rcall pause ;Pause zwichen den Zeichen ret ;Unterprogramm verlassen







Zitieren

Lesezeichen