Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- KB_init:
- push r16
- push r17
- // ustawić DIR kolumn (COL#) na wyjście w trybie Wired-OR i zainicjować na 0
- ldi r17, PORT_OPC_WIREDOR_gc ;załaduj bity konfiguracyjne WIREDOR do r17
- sts PORTA_PIN5CTRL, r17
- sts PORTB_PIN0CTRL, r17
- sts PORTB_PIN1CTRL, r17
- sts PORTB_PIN3CTRL, r17 ;konfiguracja portów w trybie WIREDOR
- // ustawić DIR wierszy (ROW#) na wejście
- ldi r16, 1<<5
- sts PORTA_OUTCLR, r16
- sts PORTA_DIRSET, r16
- ldi r16, 1<<0 | 1<<1 | 1<<3
- sts PORTB_OUTCLR, r16
- sts PORTB_DIRSET, r16 ;konfiguracja PORTA PIN5 i PORT B PIN 0,1,3 jako OUTPUT
- // ustawić tryb wejść Totem-pole z pull-down
- ldi r16, 0
- ldi r17, 0
- ldi r17, PORT_OPC_PULLDOWN_gc ;załaduj bity konfiguracyjne TOTEMPOLE PULDOWN do r17
- sts PORTA_PIN4CTRL, r17
- sts PORTA_PIN6CTRL, r17
- sts PORTA_PIN7CTRL, r17
- sts PORTB_PIN2CTRL, r17 ;konfiguracja portów w trybie TOTEMPOLE PULDOWN
- ldi r16, 1<<4 | 1<<6 | 1<<7
- sts PORTA_DIRCLR, r16
- ldi r16, 1<<2
- sts PORTB_DIRCLR, r16 ;konfiguracja PORTA PIN 4,6,7 i PORT B PIN 2 jako INPUT
- pop r17
- pop r16
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement