piclist 2002\07\09\105407a >
Thread: Interrupts for SX
www.piclist.com/techref/ubicom/sxints.htm?key=interrupt
flavicon
face BY : PSL email (remove spam text)

part 0 46 bytes
This is a multi-part message in MIME format.

part 1 1905 bytes content-type:text/plain; (decoded 7bit)


----- Original Message -----
From: "PSL" <psln.....spamspam_OUTstarhub.net.sg>
To: <spam_OUTjamesnewton.....spamspamBeGonepiclist.com>
Sent: Tuesday, July 09, 2002 8:37 PM
Subject: Re: [SX]: Interrupts for SX


> Hi James
>
> Hope you can help me on this i really been struck for a few day on this
>
>
>
> I am using the ISR to capture data on a 4 bit bus line(P0-P3) the timing
> diagram. i think more of less the program is correct as i do get the
correct
> results once in the while.
> the attach File.txt is the SX with the ISR the data line is connect to
this
> other SX
>
> Can you please enlighten me if i have make any mistake in setting up the
> Interrupts ? it seem that normally for the first few trigger every thing
is
{Quote hidden}

written
{Quote hidden}


part 2 13086 bytes content-type:text/plain;
(decoded quoted-printable)



       
               DEVICE  SX28L,OSCHS3,TURBO
               RESET   RESET_ENTRY
               FREQ    50_000_000



;__________________________________________________________;

;       MACRO
;__________________________________________________________;

_BANK   MACRO   1
       BANK    \1
       IF \1 & %10000000               ;SX48BD AND SX52BD (PRODUCTION RELEASE) BANK INSTRUCTION                 SETB    FSR.7           ;MODIFIES FSR BITS 4,5 AND 6. FSR.7 NEEDS TO BE SET BY SOFTWARE.
       ELSE
               CLRB    FSR.7
       ENDIF
       ENDM
;__________________________________________________________;

_MODE   MACRO   1
               MOV     W,#\1           ;LOADS THE M REGISTER CORRECTLY FOR THE SX48BD AND SX52BD
               MOV     M,W
       ENDM
;__________________________________________________________;

DELAY4X         MACRO
               MOV     TEMP,W                  ;1 INITIALIZE COUNT1, COUNT2        
:DELAY4XLOOP    DJNZ    TEMP,:DELAY4XLOOP       ;4/2 DECREMENT UNTIL ALL ARE ZERO              
               ENDM        
;__________________________________________________________;

;__________________________________________________________;
;
;       INITIAL PORT VALUE
;__________________________________________________________;

RA_INIT         EQU     %11111111               ;SX18/20/28/48/52 RA_IO           EQU     %11111110               ;SX18/20/28/48/52
RB_INIT         EQU     %00001111               ;SX18/20/28/48/52 RB_IO           EQU     %00000000               ;SX18/20/28/48/52
RC_INIT         EQU     %00000000               ;SX18/20/28/48/52 RC_IO           EQU     %00000000               ;SX18/20/28/48/52

;__________________________________________________________;
;
;       PIN/PORT ASSIGNMENT
;__________________________________________________________;

RS232TX         EQU     RA.0
RXPIN           EQU     RA.1
;__________________________________________________________;
;
; GLOBAL REGISTER DEFINITIONS
;__________________________________________________________;
               ORG     $08                     ;GLOBAL DATA MEMORY STARTS AT $0A ON SX48/52

TEMP1X          DS      1
TEMP2X          DS      1
TEMP3X          DS      1
TFSR            DS      1
TSWAP           DS      1
;__________________________________________________________;        
;
; BANK 0        
;__________________________________________________________;
               ORG     $10     ;BANK 0 ADDRESS ON SX52
BANK0           =     $

;__________________________________________________________;        
;
; BANK 1        
;__________________________________________________________;
               ORG     $30     ;BANK 1 ADDRESS ON SX52
BANK1           =     $

;__________________________________________________________;        
;
; BANK 2        
;__________________________________________________________;
               ORG     $50     ;BANK 2 ADDRESS ON SX52
BANK2           =     $

;__________________________________________________________;        
;
; BANK 3        
;__________________________________________________________;
               ORG     $70     ;BANK 3 ADDRESS ON SX52
BANK3           =     $

;__________________________________________________________;        
;
; BANK 4        
;__________________________________________________________;
               ORG     $90     ;BANK 4 ADDRESS ON SX52
BANK4           =     $

;__________________________________________________________;        
;
; BANK 5        
;__________________________________________________________;
               ORG     $B0     ;BANK 5 ADDRESS ON SX52
BANK5           =     $

;__________________________________________________________;        
;
; BANK 6        
;__________________________________________________________;
               ORG     $D0     ;BANK 6 ADDRESS ON SX52
BANK6           =     $

;__________________________________________________________;        
;
; BANK 7        
;__________________________________________________________;
               ORG     $F0     ;BANK 7 ADDRESS ON SX52
BANK7           =     $

RS232DATA       DS      1       ;LOCATION TO KEEP TXDATA        
COMCOUNTER      DS      1       ;KEEP TRACK OF BIT COUNT
WCOUNTER        DS      1       ;KEEP TRACK DELAY COUNT
RXDAT           DS      1       ;LOCATION TO KEEP RXDATA
CRC_LO          DS      1       ;KEEP TRACK OF CRC HIGH VALUE
CRC_HI          DS      1       ;KEEP TRACK OF CRC HIGH VALUE
TEMP            DS      1       ;TEMP LOCATION
CBLOCK          DS      1       ;BLOCK COUNT
TEMPf           DS      1       ;BLOCK COUNT
;TFSR15         DS      1       ;TEMP FSR

WKPND_B         EQU     $19
WKED_B          EQU     $1A
WKEN_B          EQU     $1B
;__________________________________________________________;
;
; Interrupt Service Routine
;__________________________________________________________;
;
; Note: The interrupt code must always originate at address $0.
;
; Interrupt Frequency = (Cycle Frequency / -(retiw value))  For example:
; With a retiw value of -217 and an oscillator frequency of 50MHz, this
; code runs every 4.34us.
;
INT_PERIOD      EQU     108     ; INTERRUPT TO OPERATE AT 20NS X 108 = 2.16US
;__________________________________________________________;

       ORG     $000
INTERRUPT                                       ;3

       MODE    WKPND_B                         ;1
       MOV     W,#$00                          ;1
       MOV     !RB,W                           ;1
       MODE    $1F                             ;1
       MOV     W,RB                            ;1

       AND     W,#$0F                          ;1
       MOV     TEMP1X,W                        ;1
       NOP                                     ;1
       NOP                                     ;1
       NOP                                     ;1
       NOP                                     ;1
       NOP                                     ;1
       NOP                                     ;1
       NOP                                     ;1
       NOP                                     ;1
       NOP                                     ;1
       NOP                                     ;1
       NOP                                     ;1
       NOP                                     ;1
       NOP                                     ;1
       MOV     W,RB                            ;1

       AND     W,#$0F                          ;1
       MOV     TEMP2X,W
       SWAP    TEMP2X
       MOV     W,TEMP2X
       ADD     TEMP1X,W
       MOV     W,TEMP1X
       CALL    @TXDATA

       _MODE   WKPND_B
       MOV     W,#$00
       MOV     !RB,W
       
       



;ISR_END                
;       MOV     W,#-INT_PERIOD          ;REFRESH RTCC ON RETURN
       RETIW                           ;RETURN FROM THE INTERRUPT
                                               ; = 1/(INT_PERIOD*RTCC PRESCALER*1/50MHZ)
                                               ; = 1/(217*1*20NS) = 4.34US
               NOP
               NOP
               NOP
               NOP
;__________________________________________________________;
       

RESET_ENTRY
               MODE    $1F                     ; POINT MODE TO WRITE DDIR
                                               ;*(5-BIT VALUE USED TO ENSURE CORRECT VALUE
                                               ; FOR SX48/52, ONLY 4-BITS OF THIS VALUE ARE
                                               ; USED ON SX18/20/28)
               MOV     W,#RA_INIT              ; INITIALIZE DATA LATCHES FOR
               MOV     RA,W                    ; PORT A.
               MOV     W,#RA_IO                ; INITIALIZE DATA DIRECTION REGISTER FOR                
               MOV     !RA,W                   ; PORT A.
               MOV     W,#RB_INIT              ; INITIALIZE DATA LATCHES FOR
               MOV     RB,W                    ; PORT B.
               MOV     W,#RB_IO                ; INITIALIZE DATA DIRECTION REGISTER FOR
               MOV     !RB,W                   ; PORT B.        
               MOV     W,#RC_INIT              ; INITIALIZE DATA LATCHES FOR
               MOV     RC,W                    ; PORT C.
               MOV     W,#RC_IO                ; INITIALIZE DATA DIRECTION REGISTER FOR
               MOV     !RC,W                   ; PORT C.

               MOV     W,#'S'
               CALL    @TXDATA
               MOV     W,#'T'
               CALL    @TXDATA
               MOV     W,#'A'
               CALL    @TXDATA
               MOV     W,#'R'
               CALL    @TXDATA
               MOV     W,#'T'
               CALL    @TXDATA                
               _MODE   WKED_B
               MOV     W,#$0F
               MOV     !RB,W

               _MODE   WKPND_B
               MOV     W,#$00
               MOV     !RB,W

               _MODE   WKEN_B
               MOV     W,#$F0
               MOV     !RB,W

               _MODE   $1F
               
ENDLESS
               JMP     ENDLESS
               JMP     $


                       







TXDATA
               _BANK   BANK7
               MOV     RS232DATA,W
               MOV     COMCOUNTER,#$08
                ;START BIT            
               CLRB    RS232TX                         ;   1          
               MOV     WCOUNTER,#250                   ;   COMW1           DJNZ    WCOUNTER,COMW1                  ;1000
               MOV     WCOUNTER,#250                   ;   COMW1A          DJNZ    WCOUNTER,COMW1A                 ;1000
               MOV     WCOUNTER,#150                   ;
COMW1B          DJNZ    WCOUNTER,COMW1B                 ; 600
               NOP                                     ;   1
               NOP                                     ;   1
               NOP                                     ;   1

                ;BIT 0 TO 7
COMLOOP         SB      RS232DATA.0                     ;   -
               CLRB    RS232TX                         ;   -
               SNB     RS232DATA.0                     ;   -
               SETB    RS232TX                         ;   4

               MOV     WCOUNTER,#250                   ;   COMW2           DJNZ    WCOUNTER,COMW2                  ;1000
               MOV     WCOUNTER,#250                   ;   COMW2A          DJNZ    WCOUNTER,COMW2A                 ;1000
               MOV     WCOUNTER,#149                   ;    COMW2B          DJNZ    WCOUNTER,COMW2B                 ; 596

               RR      RS232DATA                       ;   1
               DJNZ    COMCOUNTER,COMLOOP              ;  4/2

                ;STOP BIT
               SETB    RS232TX                         ;   1          
               MOV     WCOUNTER,#250                   ;   COMW3           DJNZ    WCOUNTER,COMW3                  ;1000
               MOV     WCOUNTER,#250                   ;   COMW3A          DJNZ    WCOUNTER,COMW3A                 ;1000
               MOV     WCOUNTER,#175                   ;   COMW3B          DJNZ    WCOUNTER,COMW3B                 ; 700
               RETP                                    ;   3


;__________________________________________________________;        
;
RXDATA          
;__________________________________________________________;

               _BANK   BANK7                           ;1 GOTO BANK0
               CLR     RXDAT                           ;1
               MOV     COMCOUNTER,#8                   ;2
POLL            SNB     RXPIN                           ;1 CHECK RA0 FOR START BIT
               JMP     POLL                            ;1/3 LINE STILL LOW        
               MOV     WCOUNTER,#250                   ;   RXCOMW3         DJNZ    WCOUNTER,RXCOMW3                        ;1000
               MOV     WCOUNTER,#87                    ;   RXCOMW3A        DJNZ    WCOUNTER,RXCOMW3A               ;
               SNB     RXPIN                           ;1
               JMP     POLL                            ;3 FALSE START BIT
GET_NEXT_BIT
RXCOMW3XX       DJNZ    WCOUNTER,RXCOMW3XX              ;1000
               MOV     WCOUNTER,#250                   ;   RXCOMW3AXX      DJNZ    WCOUNTER,RXCOMW3AXX             ;1000
               MOV     WCOUNTER,#175                   ;   RXCOMW3BXX      DJNZ    WCOUNTER,RXCOMW3BXX             ; 700
               SNB     RXPIN                           ;1
               SETB    C                               ;1
               SB      RXPIN                           ;1
               CLRB    C                               ;1        
               RR      RXDAT                           ;1
               DECSZ   COMCOUNTER                      ;1/2
               JMP     GET_NEXT_BIT                    ;1

;RXCOMW3X       DJNZ    WCOUNTER,RXCOMW3X               ;1000
;               MOV     WCOUNTER,#250                   ;   ;RXCOMW3AX      DJNZ    WCOUNTER,RXCOMW3AX              ;1000
;               MOV     WCOUNTER,#175                   ;   ;RXCOMW3BX      DJNZ    WCOUNTER,RXCOMW3BX              ; 700
               MOV     W,RXDAT        
               RETP                                    ;2



       END



part 3 20496 bytes content-type:image/jpeg; (decode)


part 4 136 bytes
--
http://www.piclist.com#nomail Going offline? Don't AutoReply us!
email listservspamRemoveMEmitvma.mit.edu with SET PICList DIGEST in the body


<000201c22758$31c69b60$5c087dcb@a6w9j9>

See also: www.piclist.com/techref/ubicom/sxints.htm?key=interrupt
Reply You must be a member of the piclist mailing list (not only a www.piclist.com member) to post to the piclist. This form requires JavaScript and a browser/email client that can handle form mailto: posts.
Subject (change) Interrupts for SX

month overview.

new search...