Sida 2 av 2

Re: PIC -> PIC via RS232 nya frågor..

Postat: 12 mars 2012, 09:47:40
av sodjan
Ja, det tycker jag att det generellt bör göra. Det är ju mycket enklare att
ändra i samma program som man ändå jobbar i. Allt annat vore väldigt märkligt...
Jag har aldrig tänkt tanken att man *kan* ändra via enhetshanteraren... :-)

Re: PIC -> PIC via RS232 nya frågor..

Postat: 12 mars 2012, 13:23:36
av jesse
Jag orkar inte just nu sätta mig in i och läsa alla detaljer i tråden, men jag ser direkt något uppenbart:

1) den sändande enheten skickar ett tresiffrigt tal i form av tre ascii-tecken: '1' '2' och '3' och då syns det som 123 i PC-terminalen.

2) om du då tar emot dessa ascii-tecken och använder BIN2ASC för att omvandla dessa innan du skriver ut det på dispalyen så blir det ju fel förstås! Det är ju inte binärt från början. Eller har jag förstått fel?

Re: PIC -> PIC via RS232 nya frågor..

Postat: 12 mars 2012, 14:58:05
av Variosboy
Den sändande enheten skickar inte ASCII, den skickar binära värden. (decimalt värden mellan 100 och 0).
Omvandlingen från det binära värdet till tre byte med vardera hundra, tio och ental sker i mottagaren med rutinen BIN2BCD.

Ska testa ikväll som Sodjan föreslog att skicka vidare det som kommer in för att se i terminalfönstret på dator 2 vad som skickas vidare.. På så vis kan jag med ena datorn se att 16F628A:an skickar ut "rätt" fortsättningsvis och med andra datorn se vad som kommer in och sen vidare ut ur 16F690:in.

Återkommer med resultatet av det testet ikväll!

Tack för att ni tar er tid!!

Re: PIC -> PIC via RS232 nya frågor..

Postat: 12 mars 2012, 16:10:43
av jesse
OK, då missförstod jag när jag skummade igenom tråden som hastigast...

Om du vill felsöka vad som kommer in kan du också modifiera sändaren lite så att den t.ex. skickar bokstäverna A, B, C om och om igen med 1 sekunds mellanrum. Och så låter du mottagaren skicka tecknet som det är direkt till dispalyen. Om du då får rätt tecken så vet du att det fungerar. Då blir nästa steg att felsöka omvandlingen till ASCII i BIN2ASC. Själva rutinen är säkert riktig, men du kanske läser data från fel plats i minnet eller nåt annat konstigt?

Re: PIC -> PIC via RS232 nya frågor..

Postat: 12 mars 2012, 18:30:55
av Variosboy
Alltså, jag har fortfarande ingen rutin som gör om till ASCII!! :)

Den heter BIN2BCD..

För att testa mig själv en gång till så gjorde jag som så nu att jag la in en räknare i mottagarkoden och kommenterade bort den rutin som sköter mottagning och istället anropar jag rutinen nedräkning nedan. Som ni ser så sparar den värdet på räknaren i variabeln räknare.
Det är denna jag skickar till BIN2BCD och som jag sen skriver ut till displayen.

Räknaren ser ut såhär:

Kod: Markera allt

nedräkning
		decfsz	räknare      ;räkna ner räknare								
		goto	nedräkning_klar	;om räknaren nått noll hoppar vi över denna raden
		movlw	0x64		;Sätter räknare till 100 decimalt
		movwf	räknare
nedräkning_klar
		call	delay_1s
	return
Testet visar att allt som har med omvandling i den mottagande delen fungerar som det ska eftersom räknaren funkar på LCD:en som den ska.

Nu ska jag modifiera koden så att den skickar ut det som kommer in så jag kan kika i datorn på det så som sodjan föreslog ovan..

Re: PIC -> PIC via RS232 nya frågor..

Postat: 13 mars 2012, 20:10:51
av Variosboy
Då var problemet löst.

Och om jag förstår det hela rätt så hängde felet på att jag i setupen för mottagningen av data inte hade "banksel" mellan de olika inställningarna i RCSTA och TXSTA-registrena.. (Följde guiden och gjorde inställningen på samma sätt i min kod, fast med rätt baudrate osv osv då..)

Hittade denna länken som var en bra guide (tyckte jag):

http://www.codeproject.com/Articles/897 ... hip-Techno

Re: PIC -> PIC via RS232 nya frågor..

Postat: 14 mars 2012, 00:56:37
av sodjan
Vad bra att det löste sig. Det hela kändes ju väldigt mycket som problem
med baudrate eller liknande. Extra/onödiga BANKSEL kan aldrig göra någon
skada, men kan vara väldigt kritiska för funktionen om de saknas. :-)