ABCelectronique : portail d'information dans le domaine de l'électronique
Recherche sur le site
Circuits et composants Guide d'achat Emplois Resources externe Forum de discussion Annonces Divers
Connexion | Datasheet | Equiv.
Nouv. | Cat. | Boitiers | Broches
Audio-Vidéo | Téléphonie
Informatique
Offres | Ajout
CVs | Ajout
Cours | Montages | Logiciels
Sociétés | Livres | Ajout lien
Electronique | Informatique
Dépannage | Hors Elec.
Liste annonces
Ajouter annonce
Actualités | Barre d'outils
Connecteurs | Contact
  Home » Diverses rubriques » Archive forum sujets  
 
     
   HC11: probleme avec OC2  
Bonjour à tous,

Mon ami et moi avons fait un montage pour pouvoir programmer le
68hc811e2 en bootstrap.
Jusqu'à maintenant, aucun problème. Par contre, nous avons programmer le
hc11 avec le ce programme:

(http://perso.wanadoo.fr/franck.decaux/mini-carte-68HC11/exemple8.htm)

***************************************************************************

#include regist.asm

org EEPROM

; Debut du programme:

debut:
ldaa #$10
staa INIT ; RAM en $1000, Registres en $0000

lds #STACK ; Initialisation du pointeur de pile

; initialisation CAN
bset OPTION,%10000000
ldaa #%00110000
staa ADCTL ; Conversions continues

; initialisation timer
ldaa #%01000000
staa OC1M ; OC1 commande PA6

ldaa #%10000000
staa TCTL1 ; OC2 declenche un 0 sur PA6

ldaa #%01000000
staa OC1D ; OC1 declenche un 1 sur PA6

bset TMSK1,%10000000 ; Autorise l'interruption OC1
cli

; Boucle principale:

boucle:

wai ; Attente d'une interruption
bra boucle ; Recommence

; Sous programme d'interruption TOC1:

int_TOC1:

; TOC2 = TOC1 + (ADR1 * 7,8431) + 2000 (1 ms a 2 ms pour ADR1 de 0 a 255)

ldab ADR1
clra ; accuD = ADR1

ldx #8359 ; X = 8356 (= 65536 / 7.8431)
fdiv ; X = (65536 * accuD) / X (= ADR1 *
7.8431)
xgdx ; Transfert de X dans accuD
addd #2000 ; accuD = (ADR1 * 7.8431) + 2000

addd TOC1 ; accuD = TOC1 + (ADR1 * 7.8431) + 2000
std TOC2 ; Resultat dans TOC2

; Prochaine int_TOC1 dans 20 ms (frequence 50 Hz)
ldd TOC1
addd #40000
std TOC1 ; TOC1 = TOC1 + 40000 (20 ms)

; Efface le flag OC1F
ldaa #%10000000
staa TFLG1

rti

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;
org $FFD6

; Vecteurs d'interruptions.

SCI_VECT FDB debut
SPI_VECT FDB debut
PAI_VECT FDB debut
PAO_VECT FDB debut
TOF_VECT FDB debut

TOC5_VECT FDB debut
TOC4_VECT FDB debut
TOC3_VECT FDB debut
TOC2_VECT FDB debut
TOC1_VECT FDB int_TOC1
TIC3_VECT FDB debut
TIC2_VECT FDB debut
TIC1_VECT FDB debut

RTI_VECT FDB debut
IRQ_VECT FDB debut
XIRQ_VECT FDB debut
SWI_VECT FDB debut
TRAP_VECT FDB debut
COP_FAIL_VECT FDB debut
COP_CMF_VECT FDB debut
RESET_VECT FDB debut

***************************************************************************

Lorsque nous testons le prog, le broche oc2(PA6) reste toujours à "1".
Est ce que quelqu'un peut me dire pourquoi ??

Merci




Numéro de l'article: 74541   |  De: Louis-Bernard Lagueux   |  Date: 2002-04-25 12:49:05