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
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
  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
'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).
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.
 Thread beobachten
 Thread beobachten Seitenaufteilung abschalten
 Seitenaufteilung abschalten