Blame view

tests/boutonInt.txt 1.12 KB
239edc80   Geoffrey PREUD'HOMME   Déplacement des f...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
  .equ PINA = 0x00 ; définition des adresses des ports

  .equ DDRA = 0x01

  .equ PORTA = 0x02

  .equ PINC = 0x06

  .equ DDRC = 0x07

  .equ PORTC = 0x08

  

  .equ SREG = 0x3F

  

  .equ EIMSK = 0x3D

  .equ EICRA = 0x69

  .equ EICRB = 0x6A

  

  .equ RAMEND = 0x21FF

  .equ SPH = 0x3E ; initialisation de la pile

  .equ SPL = 0x3D

  

  .org  0x000

      ; Vecteur RESET

      jmp debut

  

  .org 0x0002 ; INT0

      jmp valider

  

  .org 0x0004 ; INT1

      jmp retour

  

  .org 0x0006 ; INT2

      jmp incrementer

  

  .org 0x0008 ; INT3

      jmp decrementer

  

  .org 0x0080

  

  debut:

      DDRA@IO <- 0xFF

      DDRC@IO <- 0xFF

      PORTA@IO <- 0xFF

      PORTC@IO <- 0xFF

      EIMSK <- 0b00001111

      EICRA <- 0b11111111 ; TODO Oscillations annulables ?

      EICRB <- 0b00000000

      SEI

  

  boucle:

      sleep

      saut boucle

  

  valider:

      PORTC@IO <- 0x00

      reti

  

  retour:

      PORTC@IO <- 0xFF

      reti

  

  incrementer:

      r20 <- PINC@IO

      inc r20

      PORTC@IO <- r20

      reti

  

  decrementer:

      r20 <- PINC@IO

      dec r20

      PORTC@IO <- r20

      reti

  

  tempo:

      ldi r24,8

  tempoA:

      subi r22,1

      sbci r23,0

      sbci r24,0

      brcc tempoA

      ret