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.