Frohes Neues! Wie aus der Überschrift zu entnehmen versuche ich bei oben genannter Konstellation mit Hilfe von Multiplexing, eine zweistellige, positive Temperatur ohne Nachkommastellen, anzeigen zu lassen. Es löuft nun folgendes ab: Über i²C wird die Temperatur vom Sensor geholt und gespeichert, daraufhin wird der Wert umgewandelt um auf der 7-Segmentanzeige dargestellt zu werden. Da ich einen BCD->7Segment Dekoder verwende, benutze ich nur 6 Ausgänge am PortB. 4 für die Daten und zwei für jeweils einen Transistor von denen jeder eine Anzeige treibt. Mein Problem liegt nun darin eine höhere Frequenz beim Multiplexing zu erreichen. Da das auslesen der Temperatur aus dem LM75 einige Zeit braucht.. Vielleicht gehe ich auch mit dem Falschen Ansatz daran. Hoffe jemand kann mir einen Tipp geben. Hier ein Codeschnipsel: call i2c_on call i2c_txACK call i2c_rxACK movwf buff_HIGH call i2c_rx movwf buff_LOW call i2c_off ;Hier die eigentliche Schleife ! nochmal call conversion iorwf zehner, w movwf PORTB movlw .5 movwf loop2 movlw .50 movwf loop call WAIT clrf PORTB movlw B'10000000' iorwf einer, w movwf PORTB movlw .2 call WAIT goto nochmal
Hallo Lukas, das Problem wird sein, das Deine I2C-Routinen zu viel Zeit brauchen. Bei zwei LED-Anzeigen ist eine Multiplex-Frequenz noch 150 Herz völlig ausreichend. Der LM75 kann Daten mit 100KHz senden. Wenn also zwischen PIC und LM 100 Bit "fliegen müssen bis Du die Daten hast, dann ist das immernoch 1Khz Wiederholfrequenz! 1Khz zu 150 Hz, da hast Du eigendlich jede Menge Zeit!!!! Ich würde folgendes Programm verwenden: nochmal call i2c_on call i2c_txACK call i2c_rxACK movwf buff_HIGH call i2c_rx movwf buff_LOW call i2c_off call conversion iorwf zehner, w movwf PORTB call i2c_on call i2c_txACK call i2c_rxACK movwf buff_HIGH call i2c_rx movwf buff_LOW call i2c_off clrf PORTB movlw B'10000000' iorwf einer, w movwf PORTB goto nochmal Auf diese Weise bestimmt die I2C Programmierung Deine Multiplexfrequenz. Das der Einer und Zehnerwert aus zwei unterschiedlichen Abfragen herrühren, merkt man nicht, da die Anzeige für das Auge eh zu schnell ist! Hoffe es hilft Dir weiter!! GRUSS INGO
http://www.sprut.de/electronic/pic/programm/thermo75/thermo75.htm http://www.sprut.de/electronic/pic/projekte/thermo/thermo.htm -Ohne Worte
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.