Ok hier is de opgave,

ik heb een 8052 microcontroller ic op een evaluatiebordje. De 8052 bevat het PAULMON monitor programma.. nu is het de bedoeling dat ik een seriële interface tot stand kan brengen dmv TCL.

Als ik bijvoorbeeld al een goewoon ascii karakter zou kunnen doorsturen, dat zou al fantastisch zijn.

ik kan met tcl de seriële poort wel openen door de "set tty [open /dev/ttyS0]" maar ik moet de microcontroller kunnen wijsmaken het ascii karakter in zijn accumulator te zetten (cin functie van paulmon aanspreken??) en dit getal eventueel uitlezen op de LEDBAR ofzo.

Of hoe kan ik bijvoorbeel al gewoon iets zenden (eendert wat) naar de seriële poort?

ik heb de verbinding natuurlijk ook al eens tot stand gebracht door middel van minicom(linux) en een voorbeeldprogrammatje van de site van paulmon gezonden naar het ram van de 8052 om te verbinding toch al eens tot stand te kunnen brengen en de werking van paulmon te snappen. maar dit is natuurlijk een .hex bestand en in die richting zoek ik niet...

enige suggesties/raad?

XTAL EQU 12.000.000

SerSpeed EQU 243 /* 4800 Bd */

SetSerial:
MOV TMOD,#22h /* Timer 1 & 2(MSS-port) is 8-bit autoreload timer */
MOV PCON,#80H /* SMOD = 1 */
MOV TH1,#SerSpeed
MOV TL1,#SerSpeed
MOV TCON,#40h /* Start baudrate timer */
MOV SCON,#52h /* 8bit UART, Enable reception, Xmit interrupt */
CLR SCON.0 ;; clear serial buffer
RET

TxTxt: CLR A /* Send text from program store at DPTR until 0 */
MOVC A,@A+DPTR
JZ TxTxt1
LCALL TxChr
INC DPTR
SJMP TxTxt
TxTxt1: RET

TxWrd: PUSH ACC
MOV A,DPH
LCALL TxByt
MOV A,DPL
LCALL TxByt
POP ACC
RET

TxByt: PUSH ACC /* Send BYTE hexadecimal , destroy ACC only */
SWAP A
LCALL TxNibl
POP ACC
TxNibl: ANL A,#0Fh
ADD A,#'0'
CJNE A,#'9'+1,$+3
JC TxChr
ADD A,#7
TxChr: JNB SCON.1,TxChr /* Must not destroy any reg */
CLR SCON.1
MOV SBUF,A
CJNE A,#Lf,TxChr1
TxWait: PUSH DPL
PUSH DPH
MOV DPTR,#2
LCALL LTime /* Wait 25 mSec for slow scrolling terminals */
POP DPH
POP DPL
TxChr1: RET

RxChr: JNB SCON.0,RxChr ;; Get character from serial port and return in A
MOV A,SBUF
CLR SCON.0
RET

Zoiets ??

In de monitor zitten waarschijnlijk ook functies om de seriele poort te gebruiken.
Succes !


receivechar:do;

TL1=255;  /* 155200 baud op 22.1 MHz */
TH1=255;
PCON=80h;
TMOD=22h;
SCON0 =52h
TR1=1;

receive: procedure interrupt 1 using 0
    p1 = scon; /* copy naar port 1 */
    RI = 0;  /* receive flag reset */
end receive

RI = 0;
enable;  /* stat interrupt processing */

do while 1;
   /* absoluut niks. tis interrupt driven */
end;
end receivechar;

is alletwee heel vriendelijk maar niet echt wat ik nodig heb... zoek code om in TCL toe te passen,

dacht het "comm" commando toe te passen in tcl. omzo een verbinding met de seriële poort tot stand te brengen, zo kan ik dan getallen die ik laat omzetten naar ascii code door sturen naar mijn 8052 ic via de serieële poort. ik moet er natuurlijk wel voor zorgen dat het ic weet da er iets op de poort gezet wordt en dit moet uitlezen, daarom zou ik die cin functie in paulmon moeten aanspreken(deze functie zet de informatie van aan de seriële poort in de accumulator). daar zit ik dus vast.. ik hoop dat mijn uitleg een beetje duidelijk is...