SPBRG har väl bara med baud-rate att göra, alltså är det annat du måste göra. Jag tror att du har gjort den mycket vanligt blunder: "men det är ju default så det behöver jag inte ställa..."
Har du kollat att du faktisk ställer alla bit som behövs rätt? Och nej, jag ids inte leta upp databladet när du inte ens kan kommentera din kod med vad de olika inställningar gör.
jag bråkade med RS232 på just PIC16F877A i PBP förut, och det var ju ett antal grejer man behövde ställa in ja, var nån riktig luring också hmm.. typ man fick räkna ut nåt värde baserat på sin klocka ?
..Men det var ju PBP som sagt.
..Sen brukar man inte få använda internoscillatorn för RS232, fast det spelar ju ingen roll på just denna PIC'en..
hej tack för att ni tog er tid, har fortfarande inte lyckats lösa det.. har kollat data bladet flera gånger.
när ja kommenterar bort SPBRG så fungerar hälften av ascii tekena, ibland även alla men då inte varje gång man trycker utan bara ibland..
Att SKRIKA och komma med krav är något som definitivt inte hjälper.
> när ja kommenterar bort SPBRG...
Visa exakt vad du menar med det. Menar du att kommentera bort
raden där du gör "SPBRG = 25;" ? Det kommer *definitivt* inte att
fungera om du inte sätter SPBRG korrekt enligt din processorhastighet
och din baud-rate.
> så fungerar hälften av ascii tekena,
Visa även vad du menar med det. Exempel !
Menar du ASCII ? Och hälften av vadå ? Hälften av de tecken
som du skickar eller hälften av de olika möjliga ASCII tecknen ?
Vad har du i andra änden av kommunikationen ?
> ...mellan min pc och pic...
Menar du "mellan min PC och PIC" ?
Notera att en PIC eoch en PC inte kan kommunicera direkt
med varandra. De har olika signalnivåer på serieinterfacen.
Du behöver minst en MAX232 eller liknande också.
Har sannolikt ingen som helst betydelse eftersom du inte använder
några biblioteksrutiner som kan använda dom, så vitt jag ser.
Som t.ex inbyggda delay() funktioner eller liknande.
och ja från min PC med programmet putty skickar ett tecken tex "a"
så kommer de tilll en MAX232 sen vidare med TX och RX till PIC:en.
och sen vidare tillbaka.
som sagt att när SPBRG är bortkomenterat och ja skickar.
A B C D E F G H J I K L
så får ja tillbaka
A B c D h F p g b I K m
Ah... du har alltså ingen koll på OM du faktisk får något ut ur UART'en, du TROR bara att du inte gör det...
Ja, på det vis kommer du aldrig vidare! Kontrollera/mät eller på annat sätt undersök om UART'en skickar något alls när du begär det! Skicka ett känt värde och se om du får ut det.
När du inser att du faktisk får ut signal får du kolla vilken baudrate det EGENTLIGEN kommer på och sedan kan du gå vidare med mottagningen i PIC'en...