Adressage indirect sur ATmega
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

Adressage indirect sur ATmega



  1. #1
    gcortex

    Adressage indirect sur ATmega


    ------

    Bonjour à tous,

    je me suis fait une petite carte avec 4 afficheurs 7 segments multiplexés
    MIC5891-afficheurs cathode commune-ULN2003

    tout fonctionnait bien en adressage direct,
    mais en adressage indirect j'ai que des 8...

    Code:
       	.include "m8def.inc"
    reset:
    	LDI	R16,low(RAMEND)
    	OUT	spl,R16 
    	LDI	R16,high(RAMEND)
    	OUT	sph,R16
    	LDI	R16,0x2C
    	OUT	ddrb,R16	;CLK,MOSI,SS en sortie
    	LDI	R16,0x1F
    	OUT	ddrc,R16	;C0-4 en sortie
    	LDI	R16,0x7C
    	OUT SPCR,R16	;SPI en maitre
    	LDI R31,0x02
     aff:
    	LDI	R16,0x08	;milliers
    	LDI	R30,0x04	;chiffre 4
    	RCALL	tempo
    	LDI	R16,0x04	;centaines
    	LDI	R30,0x06	;chiffre 6
    	RCALL	tempo
    	LDI	R16,0x02	;dizaines
    	LDI	R30,0x08	;chiffre 8
    	RCALL	tempo
    	LDI	R16,0x01	;unités
    	LDI	R30,0x02	;chiffre 2
    	RCALL	tempo
    	RJMP	aff
    tempo:
    	OUT	portc,R16 ;selection aff
    	LPM
    	OUT SPDR,R0	;envoyer chiffre
    	SER	R16
    loop:
    	DEC	R16
    	NOP
    	BRNE LOOP
    	SBI portb,2
    	CBI portb,2	;pulse sur strobe
    	RET
    	;
    	.cseg
    	.org	0x0200
    	.db	0xFC,0x60,0xDA,0xF2,0x26,0xBE,0xE0,0xFE,0xF6,0xEE,0x3E,0x9C,0x7A,0xDE,0x8E

    -----

  2. #2
    gcortex

    Re : Adressage indirect sur ATmega

    'up

    voici le code qui marche (sans indirection):

    Code:
      	.include "m8def.inc"
    reset:
    	LDI	R16,low(RAMEND)
    	OUT	spl,R16 
    	LDI	R16,high(RAMEND)
    	OUT	sph,R16
    	LDI	R16,0x2C
    	OUT	ddrb,R16	;CLK,MOSI,SS en sortie
    	LDI	R16,0x1F
    	OUT	ddrc,R16	;C0-4 en sortie
    	LDI	R16,0x7C
    	OUT SPCR,R16	;SPI en maitre
     aff:
    	LDI	R16,0x08
    	LDI	R17,0xDA	;envoyer 2
    	RCALL	tempo
    	LDI	R16,0x04
    	LDI	R17,0xF2	;envoyer 3
    	RCALL	tempo
    	LDI	R16,0x02
    	LDI	R17,0x26	;envoyer 4
    	RCALL	tempo
    	LDI	R16,0x01
    	LDI	R17,0x60	;envoyer 1
    	RCALL	tempo
    	RJMP	aff
    tempo:
    	OUT	portc,R16
    	OUT SPDR,R17
    	SER	R16
    loop:
    	DEC	R16
    	BRNE LOOP
    	SBI portb,2
    	CBI portb,2
    	RET

  3. #3
    ftorama

    Re : Adressage indirect sur ATmega

    Salut,

    déjà, j'aurais mis les données en .dseg plutôt qu'en .cseg. LPM devient alors inutile

  4. #4
    gcortex

    Re : Adressage indirect sur ATmega

    déjà, j'aurais mis les données en .dseg plutôt qu'en .cseg
    j'ai mis dseg et c'est pareil

    LPM devient alors inutile
    ?
    Dernière modification par gcortex ; 27/09/2011 à 18h13.

  5. A voir en vidéo sur Futura
  6. #5
    ftorama

    Re : Adressage indirect sur ATmega

    Tu as lu cette doc?

    http://www.atmel.com/dyn/resources/p...ts/doc1233.pdf

    Normalement, l'adresse à laquelle tu lis est déterminée par Z, or je ne te vois pas l'initialiser

  7. #6
    gcortex

    Re : Adressage indirect sur ATmega

    merci pour ta réponse
    Z est formé par R31 et R30
    j'ai mis les valeurs dedans (02xx)

  8. #7
    gcortex

    Re : Adressage indirect sur ATmega

    Un grand merci

    j'ai mis org 0x0100

    problème résolu

Discussions similaires

  1. LCD graphique sur ATMEGA
    Par invite3570b5f7 dans le forum Électronique
    Réponses: 6
    Dernier message: 07/12/2010, 07h55
  2. spi sur ATmega
    Par invite3570b5f7 dans le forum Électronique
    Réponses: 34
    Dernier message: 16/08/2010, 21h15
  3. adressage modbus sur liaison serie
    Par invitea25c69bb dans le forum Électronique
    Réponses: 3
    Dernier message: 20/10/2009, 19h27
  4. MLI sur Atmega !
    Par invite0ab4261e dans le forum Électronique
    Réponses: 1
    Dernier message: 19/12/2008, 10h06
  5. adressage indirect SETP 7 siemens
    Par invite2038f4e9 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 19/10/2008, 16h14
Découvrez nos comparatifs produits sur l'informatique et les technologies.