Avatar billede vovsen Nybegynder
16. januar 2003 - 20:25 Der er 5 kommentarer og
1 løsning

Kode for ekstra seriel port til motorola 6811

Jeg bruger en Motorola 6811 CPU til noget datalogning, men har brug for en ekstra seriel port, ud over den der er indbygget, skal kunne laves i software.
Jeg bruger assembler programmering.
Håber på hjælp fra eksperterne.
Avatar billede scb Praktikant
16. januar 2003 - 20:30 #1
Hvor hurtigt skal den kunne køre (Baud hastighed)
-SCB
Avatar billede vovsen Nybegynder
16. januar 2003 - 20:30 #2
Jeg har brug for komplet kode
Avatar billede vovsen Nybegynder
16. januar 2003 - 20:34 #3
Max 9600 baud, men skal helst kunne ændres.
Avatar billede scb Praktikant
19. januar 2003 - 22:11 #4
Sende rutine: på f.eks port PD3

;*-----------------------------------------------------*
;*      SEND SERIEL PÅ COM    RS232 MANUELT          *
;*-----------------------------------------------------*
SEND_SER:    SEI
            LDAA  #9
            STAA  PAMDS
            CLC
            BRA  PUTC2
PUTC5:      ROR  PAMAS
PUTC2:      BCC  PUTC3
            BSET  PORTD,Y,3
            BRA  PUTC4
PUTC3:      BCLR  PORTD,Y,3
            BRA  PUTC4
PUTC4:      JSR  WWWW
            DEC  PAMDS
            BNE  PUTC5
            BRCLR PORTD,Y,3,PUTC6
PUTC6:      BSET  PORTD,Y,3
            PULY
            JSR  WWWW
            JSR  WWWW
            CLI
            RTS

Vente rutine der bestemmer hastigheden (Her 9600 baud)
;*-----------------------------------
;*      DELAY FOR SERIEL SEND       
;*-----------------------------------
WWWW:        PSHX
            LDX  #24     
WAIT1:      DEX
            BNE  WAIT1
            PULX
            RTS

Modtage rutine på IRQ + F.EKS port PA5
;*-----------------------------------------------------*
;*      INTERRUPTS FRA SERIEL DATA                    *
;*-----------------------------------------------------*
SERIEL_IRQ:  LDY  #1000H
            LDAA  #8
            STAA  MPAMB
            CLR  MPAMD

;*-----------VENT ET HALVT STARTBIT--------*
            LDX  #10     
MAIT1:      DEX
            BNE  MAIT1

            BRSET PORTA,Y,5,GETC8  ;FALSK STARTBIT
GETC7        JSR  WWWW
            CLC
            BRCLR PORTA,Y,5,GETC6
            SEC
GETC6        NOP
            ROR  MPAMD
            DEC  MPAMB
            BNE  GETC7
            JSR  WWWW

GETC8        LDAA  MPAMD
            ANDA  #01111111B
            STAA  MPAMD

            LDAA  MPAMD
            TSTA
            BNE  DATA    ;HOP TIL RUTINE FOR MODTAGE DATA
            RTI


Du skal selvfølig huske at oprette de forskellige registere i ram
Hop til rutine for modtagede data, undersøger og behandler data.
-SCB
Avatar billede scb Praktikant
19. januar 2003 - 22:14 #5
PS:
Hvis du skal ændre hastighed er det i rutinen wwww hvor 24 = 9600 baud, 48 = 4800 baud osv ved et krystal på 8 MHZ
-SCB
Avatar billede vovsen Nybegynder
20. januar 2003 - 21:42 #6
Takker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester