Technical discussions about Freescale Microcontrollers: M68HC11. (Freescale Semiconductor is a Subsidiary of Motorola).
strobed (polled) parallel input on portc - fidjouss - Mar 30 22:02:00 2005
Hello
I am using an adaptt11 with 68hc11e2. I am having a problem with
strobed input using portc. my program works fine in thrsim11. I am
using a DIP switch hooked to a 5v dc source connected to STRA. When i
turn the switch on and off I dont get anything and sometimes the
system craches (the red led on adaptt11 turn on). The clock part of my
code works very fine. i think the problem is in READ_PORTC subroutine.
I am trying to read data everytime there a change of edge on STRA.
Please I need ur help, project is due soon.
can anyone write a small subroutine for reading input from portc using
stra including the setup of PIOC.
Thanks all
MEM1 EQU $00
MEM2 EQU $01
MEM3 EQU $02
MEM4 EQU $03
MEM5 EQU $04
DIGIT0 EQU $05
DIGIT1 EQU $06
DIGIT2 EQU $07
DIGIT3 EQU $08
DIGIT4 EQU $09
ALARM1 EQU $0A
ALARM2 EQU $0B
ALARM3 EQU $0C
ALARM4 EQU $0D
INTCOUNT EQU $0E
COUNT1 EQU $0F
COUNT2 EQU $10
PIOC EQU $02
PORTCL EQU $05
PORTC EQU $03
PORTB EQU $04
DDRC EQU $07
PORTD EQU $08
DDRD EQU $09
TCNT EQU $0E
TOC2 EQU $18
TMSK1 EQU $22
TMSK2 EQU $24
TFLG1 EQU $23
REGBAS EQU $1000
******************************************************
Org $F800
TABLE FCB $40,$79,$24,$30,$19,$12,$02,$78,$00,$10
CONFIGURE:
Ldx #REGBAS
Bset TMSK2,X $03
Lds #$FF
Ldaa #$42
Staa PIOC,X
Ldaa #$00
Staa DDRC,X
Ldaa #$0F
Staa DDRD,X
Ldd TCNT,X
Addd #62500
Std TOC2,X
Ldaa #$40
Staa TMSK1,X
Staa TFLG1,X
Clr DIGIT0
Clr DIGIT1
Clr DIGIT2
Clr DIGIT3
Clr DIGIT4
Clr MEM1
Clr MEM2
Clr MEM3
Clr MEM4
Clr MEM5
Clr COUNT1
Clr COUNT2
Clr INTCOUNT
Cli
******************************************
Jmp DISPLAY
TOC2_ISR:
Ldd TOC2,X
Addd #62500
Std TOC2,X
Ldaa #$40
Staa TFLG1,X
Inc INTCOUNT
Ldaa #02
Cmpa INTCOUNT
Bhi SUBOUT
Clr INTCOUNT
Jsr INCREMENT_COUNT
SUBOUT Rti
********************************************
READ_PORTC:
Pshy
Ldy #$0000
Ldab COUNT1
Aby
Ldaa PIOC,X
Ldaa PORTCL,X
Staa 0,Y
Inc COUNT1
Puly
Ldaa #5
Cmpa COUNT1
Bne JMPHERE
Jsr SUB_DETERMINE
JMPHERE Rti
*******************************************************
SUB_DETERMINE:
Clr COUNT1
Ldaa MEM5
Cmpa #4
Beq Suba
Cmpa #3
Beq Subb
Cmpa #2
Beq SUBc
JSR THERE
Suba Jsr SET_CLOCK
Jmp THERE
Subb Jsr SET_ALARM
Jmp THERE
SUBc Jsr SNOOZE
THERE Rts
***********************************************
SET_CLOCK:
Ldaa MEM1
Staa DIGIT1
Ldaa MEM2
Staa DIGIT2
Ldaa MEM3
Staa DIGIT3
Ldaa MEM4
Staa DIGIT4
Ldaa #59
Staa DIGIT0
Rts
***********************************************
SET_ALARM:
Ldaa MEM1
Staa ALARM1
Ldaa MEM2
Staa ALARM2
Ldaa MEM3
Staa ALARM3
Ldaa MEM4
Staa ALARM4
Rts
**********************************************
CHECK_FOR_ALARM:
Ldaa DIGIT3
Cmpa ALARM3
Bne ENDS
Ldaa DIGIT4
Cmpa ALARM4
Bne ENDS
Ldaa DIGIT2
Cmpa ALARM2
Bne ENDS
Ldaa DIGIT1
Cmpa ALARM1
Bne ENDS
Jsr SOUND_ALARM
ENDS Rts
***********************************************
SOUND_ALARM:
Ldaa #$10
Staa PORTC,X
Rts
**********************************************
SNOOZE:
Inc ALARM2
Rts
*************************************************
DISPLAY:
LOOP:
Ldy #TABLE
Ldab DIGIT1
Aby
Ldab 0,Y
Stab PORTB,X
Ldaa #$01
Staa PORTD,X
Jsr DELAY
Ldy #TABLE
Ldab DIGIT2
Aby
Ldab 0,Y
Stab PORTB,X
Ldaa #$02
Staa PORTD,X
Jsr DELAY
Ldy #TABLE
Ldab DIGIT3
Aby
Ldab 0,Y
Stab PORTB,X
Ldaa #$04
Staa PORTD,X
Jsr DELAY
Ldy #TABLE
Ldab DIGIT4
Aby
Ldab 0,Y
Stab PORTB,X
Ldaa #$08
Staa PORTD,X
Jsr DELAY
Bra LOOP
******************************************
DELAY:
Ldy #1428
DELAY1:
Dey
Bne DELAY1
Rts
*******************************************
INCREMENT_COUNT:
Ldaa #60
Inc DIGIT0
Cmpa DIGIT0
Bhi SUB2
Clr DIGIT0
Ldaa #10
Inc DIGIT1
Cmpa DIGIT1
Bhi SUB2
Clr DIGIT1
Inc DIGIT2
Ldaa #06
Cmpa DIGIT2
Bhi SUB2
Clr DIGIT2
Inc DIGIT3
Ldaa #2
Cmpa DIGIT4
Bhi SUBX
Ldaa #4
Cmpa DIGIT3
Bhi SUBY
Clr DIGIT3
Clr DIGIT4
Jmp SUB2
SUBY: Jmp SUB2
SUBX: Ldaa #10
Cmpa DIGIT3
Bhi SUB2
Clr DIGIT3
Inc DIGIT4
SUB2: JSR CHECK_FOR_ALARM
Rts
********************************************
Org $FFE6
FDB TOC2_ISR
ORG $FFF2
FDB READ_PORTC
Org $FFFE
FDB CONFIGURE

(You need to be a member of hc11 -- send a blank email to hc11-subscribe@yahoogroups.com )
Re: strobed (polled) parallel input on portc - Paul B. Webster VK2BZC - Mar 31 0:14:00 2005
On Thu, 2005-03-31 at 02:02 +0000, fidjouss wrote:
> my program works fine in thrsim11. I am using a DIP switch hooked to
> a 5v dc source connected to STRA.
Did you connect the real DIP switch to thrsim11 or is it using an
"imaginary" switch - the ones that don't exist in real life?
Do remember that each time you operate the switch, STRA is pulsed at
least a dozen times, possibly up to a hundred, at sub-millisecond
intervals. Is that what you intended, or have you taken that into
account in your code?
Personally, I never use pulldowns - only pull-ups.
--
Cheers,
Paul B.

(You need to be a member of hc11 -- send a blank email to hc11-subscribe@yahoogroups.com )