www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC 16F628-USART


Autor: Vladimir Ko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo alle,

Ich will uber PIC16F628 die Daten ins PC
uebertragen. Der chip hat USART -Moeglichkeit, da
benutze ich ganz simple Stueck von Quellcode:

Start
     bsf  STATUS,RP0
      movlw  19h  ; 9600 baud @4MHz
  movwf  SPBRG
  bsf  TXSTA,TXEN  ; Enable transmit
     bcf  STATUS,RP0
  clrf    PORTB           ;Clear PORT_B
  bsf  TXSTA,BRGH  ; Select high baud rate
  bcf TXSTA, SYNC;
      bsf  RCSTA,SPEN  ; Enable Serial Port

Main
  movlw  'a'    ; es soll ZB. die Buchstabe 'a'
  movwf  TXREG    ; gesendet werden
  goto  Main
        end
..und da passiert nicht viel ! An PC-ende sturtz dass
Empfanger-programm ab. Das Programm ist aber selbst unschuldig-
dass habe ich separat geprueft.
Ich habe auch an TX Pin (RB2) die Spannung gemessen. In Wait-Zustand
ist U=5 V, weil wahrend des Sendens geht die Spannung nicht auf 0,
sondern.. nur auf 1.9 V !

Ist mein Chip durchgebrannt ?- wenn jemand eine Idee hat, bitte
antworte..

Danke
Vladimir

Autor: Michael B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht den MAX232 falsch angeschlossen ?

Autor: dds5 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Vladimir,
Du schaltetst in der Zeile
     bcf  STATUS,RP0
von Bank 1 zurück auf Bank 0.
Deshalb wird an Stelle von TXSTA (Bank 1) nun das Register RCSTA (hat
die selbe Adresse auf Bank 0) angesprochen.

Probier mal folgendes

     bsf  STATUS,RP0
      movlw  19h  ; 9600 baud @4MHz
  movwf  SPBRG
  bsf  TXSTA,TXEN  ; Enable transmit
  bsf  TXSTA,BRGH  ; Select high baud rate
  bcf  TXSTA, SYNC;
     bcf  STATUS,RP0
  clrf    PORTB           ;Clear PORT_B
     bsf  RCSTA,SPEN  ; Enable Serial Port


Dieter

Autor: Vladimir (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich danke euch fuer interessente Antworten !

Es ist besser geworden.. ich weiss nicht warum ! Na ja, teilweisse lag
es an chip: je fester man ihm ins Socket druckt, desto weniger war dass
Signal..

Und teilweise an der Baudrate, ich dachte der Takt war 4 Mhz, aaaber
es war 8.

Na ja, trotzdem habe ich 4 Messages von Compiler:
'Register in operand not in bank 0'.. obwohl ich habe auf Bank 1
ungeschaltet !
Ich soll vieleich Microchip fragen.. da gibt's sehr schones Formulare
im Web.

Yours
Vladimir

Autor: Chief Brady (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
'Register in operand not in bank 0'

Und nocheinmal:

Das ist "nur" eine Warnung. Die soll dich darauf aufmerksam machen,
dass der Operand (z.B. SPBRG) nicht in Bank 0 ist und du darauf achten
sollst, in die korrekte Bank zu schalten. Wenn du (irgendwann) genau
weisst was du machst, kannst du die Ausgabe dieser Warnung unterdrücken
(wie, steht im Assemblerhandbuch).

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.