Hallo, ich möchte mit dem Pic 16f88 analoge Spannungen einlesen und per USART auslesen. Ich habe das PC-Programm in VB geschrieben und es funktioniert mit anderen Pic´s zusammen wunderbar. Der "Fehler" macht sich so bemerkbar, dass das Funkmodul die Daten empfängt und direkt an Pin 8 des Pic´s 16f88 (RX)weitergibt, es da aber stark gedämpft wird und nur ca. 0,7 Volt erreicht. Ist die initialisierung des Pic´s eventl. fehlerhaft ?? ;Usart init aus Datenblatt BSF STATUS,PRO MOVLW D'64' ; für 19200 Baud MOVWF SPBRG MOVLW 0x20 MOVWF TXSTA BSF PIE1,TXIE BSF PIE1,RCIE BCF STATUS,PRO MOVLW 0x90 MOVWF RCSTA auf versucht : ; USART initialisieren ; BSF STATUS,RP0 ; Bank1 ; MOVLW 0x20 ; Sender: RS232 ; MOVWF TXSTA ; ; BCF STATUS,RP0 ; Bank 0 ; MOVLW 0x90 ; Empfänger: RS232 ; MOVWF RCSTA ; ; USART Baudrate einstellen ; BSF STATUS,RP0 ; Bank1 ; MOVLW D'64' ; Set Baud rate kBPS bei 20 MHz ; MOVWF SPBRG ; BsF TXSTA, BRGH ; BRGH=1 ; BCF STATUS,RP0 ; Bank 0 wer kann mit helfen ??
.... ja hab ich auch versucht, aber so weit ich weiss ist das nicht nötig, weil durch die Initialisierung der Schnittstelle das sowieso passiert
Nein, das TRIS-Register wird defintiv nicht von der Schnittstellenkonfiguration geändert!
Ich habe den Gesamten Aufbau mit dem 16f876 getestet und es läuft fehlerfrei ?? Ich hab´s auf den f88 umgeschrieben, wobei die Register genutzen Reg. alle gleich sind. Die Uart-initialisierung die mit dem 876 klappt sieht so aus : init ; PortB vorbereiten clrf DatenSindDa bsf STATUS, RP0 ; auf Bank 1 umschalten movlw B'11111111' ; PortB alle input movwf TRISB bcf STATUS, RP0 ; auf Bank 0 zurückschalten ;clrf PORTB ; alle LEDs ausschalten ; ADC einschalten BSF ADCON0, 0 ; ADON=1 ; ADC-Eingang AN0 auswählen ;call ADXEinschalten ; ADC speed für 20 MHz einstellen BSF ADCON0, 7 ; ADCS1=1 BCF ADCON0, 6 ; ADCS0=0 ; Daten linksbündig BSF STATUS,RP0 ; Bank1 BCF ADCON1, 7 ; ADFM=0 BCF STATUS,RP0 ; Bank0 ; USART initialisieren BSF STATUS,RP0 ; Bank1 MOVLW 0x24 ; Sender: RS232 MOVWF TXSTA ; BCF STATUS,RP0 ; Bank 0 MOVLW 0x90 ; Empfänger: RS232 MOVWF RCSTA ; ; USART Baudrate einstellen BSF STATUS,RP0 ; Bank1 MOVLW D'64' ; Set Baud rate kBPS bei 20 MHz MOVWF SPBRG BsF TXSTA, BRGH ; BRGH=1 BCF STATUS,RP0 ; Bank 0
Die UART liegt beim 16F876 schon mal auf PortC und nicht auf PortB. Wie sieht genau der Code für den 16F88 aus? Wenn du den oben geposteten kopiert und nicht abgeschrieben hast, lässt der sich mit Sicherheit schon mal nicht assemblieren.
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.