avr: adapted to latest changes in COM2 module (using uartBitbang)
This commit is contained in:
@@ -104,9 +104,9 @@ main:
|
|||||||
; ***************************************************************************
|
; ***************************************************************************
|
||||||
; includes
|
; includes
|
||||||
|
|
||||||
.include "modules/com2/lowlevel.asm"
|
.include "modules/uart_bitbang/bytelevel.asm"
|
||||||
|
.include "modules/uart_bitbang/packetlevel.asm"
|
||||||
.include "modules/com2/crc.asm"
|
.include "modules/com2/crc.asm"
|
||||||
.include "modules/com2/packets.asm"
|
|
||||||
.include "common/crc8.asm"
|
.include "common/crc8.asm"
|
||||||
.include "common/utils_wait_fixed.asm"
|
.include "common/utils_wait_fixed.asm"
|
||||||
.include "common/utils_copy_from_flash.asm"
|
.include "common/utils_copy_from_flash.asm"
|
||||||
|
|||||||
@@ -50,15 +50,19 @@
|
|||||||
.equ COM_BIT_LENGTH = 52000 ; 104000ns=9600, 52000ns=19200, 26000ns=38400
|
.equ COM_BIT_LENGTH = 52000 ; 104000ns=9600, 52000ns=19200, 26000ns=38400
|
||||||
.equ COM_HALFBIT_LENGTH = 26000 ; see https://de.wikipedia.org/wiki/Universal_Asynchronous_Receiver_Transmitter
|
.equ COM_HALFBIT_LENGTH = 26000 ; see https://de.wikipedia.org/wiki/Universal_Asynchronous_Receiver_Transmitter
|
||||||
|
|
||||||
.equ COM_DDR_DATA = DDRA
|
.equ COM_TXD_DDR = DDRA
|
||||||
.equ COM_PORT_DATA = PORTA
|
.equ COM_TXD_DATA = PORTA
|
||||||
.equ COM_PIN_DATA = PINA
|
.equ COM_TXD_PIN = PORTA1
|
||||||
.equ COM_PINNUM_DATA = PORTA1
|
|
||||||
|
|
||||||
.equ COM_DDR_ATTN = DDRA
|
.equ COM_RXD_DDR = DDRA
|
||||||
.equ COM_PORT_ATTN = PORTA
|
.equ COM_RXD_INPUT = PINA
|
||||||
.equ COM_PIN_ATTN = PINA
|
.equ COM_RXD_OUTPUT = PORTA
|
||||||
.equ COM_PINNUM_ATTN = PORTA7
|
.equ COM_RXD_PIN = PORTA1
|
||||||
|
|
||||||
|
.equ COM_ATTN_DDR = DDRA
|
||||||
|
.equ COM_ATTN_INPUT = PINA
|
||||||
|
.equ COM_ATTN_OUTPUT = PORTA
|
||||||
|
.equ COM_ATTN_PIN = PORTA7
|
||||||
|
|
||||||
.equ COM_IRQ_ADDR_ATTN = PCMSK0
|
.equ COM_IRQ_ADDR_ATTN = PCMSK0
|
||||||
.equ COM_IRQ_BIT_ATTN = 7 ; bit 7 in PCMSK0
|
.equ COM_IRQ_BIT_ATTN = 7 ; bit 7 in PCMSK0
|
||||||
|
|||||||
@@ -93,7 +93,7 @@
|
|||||||
; rjmp main ; Reset vector
|
; rjmp main ; Reset vector
|
||||||
rjmp BOOTLOADER_ADDR ; Reset vector ; use this for flashed system
|
rjmp BOOTLOADER_ADDR ; Reset vector ; use this for flashed system
|
||||||
reti ; EXT_INT0
|
reti ; EXT_INT0
|
||||||
rjmp com2IsrPcint0 ; PCI0
|
rjmp uartBitbangIsrPcint0 ; PCI0
|
||||||
reti ; PCI1
|
reti ; PCI1
|
||||||
reti ; WATCHDOG
|
reti ; WATCHDOG
|
||||||
reti ; ICP1
|
reti ; ICP1
|
||||||
@@ -143,6 +143,11 @@ firmwareStart: rjmp main
|
|||||||
#ifdef MODULES_COM
|
#ifdef MODULES_COM
|
||||||
.include "modules/com2/defs.asm"
|
.include "modules/com2/defs.asm"
|
||||||
.include "modules/com2/main.asm"
|
.include "modules/com2/main.asm"
|
||||||
|
.include "modules/com2/buffer.asm"
|
||||||
|
.include "modules/uart_bitbang/defs.asm"
|
||||||
|
.include "modules/uart_bitbang/main.asm"
|
||||||
|
.include "modules/uart_bitbang/bytelevel.asm"
|
||||||
|
.include "modules/uart_bitbang/packetlevel.asm"
|
||||||
#ifdef MODULES_COM_WITH_ADDR_PROTO
|
#ifdef MODULES_COM_WITH_ADDR_PROTO
|
||||||
.include "modules/comproto/defs.asm"
|
.include "modules/comproto/defs.asm"
|
||||||
.include "modules/comproto/main.asm"
|
.include "modules/comproto/main.asm"
|
||||||
|
|||||||
@@ -104,9 +104,9 @@ main:
|
|||||||
; ***************************************************************************
|
; ***************************************************************************
|
||||||
; includes
|
; includes
|
||||||
|
|
||||||
.include "modules/com2/lowlevel.asm"
|
.include "modules/uart_bitbang/bytelevel.asm"
|
||||||
|
.include "modules/uart_bitbang/packetlevel.asm"
|
||||||
.include "modules/com2/crc.asm"
|
.include "modules/com2/crc.asm"
|
||||||
.include "modules/com2/packets.asm"
|
|
||||||
.include "common/crc8.asm"
|
.include "common/crc8.asm"
|
||||||
.include "common/utils_wait_fixed.asm"
|
.include "common/utils_wait_fixed.asm"
|
||||||
.include "common/utils_copy_from_flash.asm"
|
.include "common/utils_copy_from_flash.asm"
|
||||||
|
|||||||
@@ -50,15 +50,19 @@
|
|||||||
.equ COM_BIT_LENGTH = 52000 ; 104000ns=9600, 52000ns=19200, 26000ns=38400
|
.equ COM_BIT_LENGTH = 52000 ; 104000ns=9600, 52000ns=19200, 26000ns=38400
|
||||||
.equ COM_HALFBIT_LENGTH = 26000 ; see https://de.wikipedia.org/wiki/Universal_Asynchronous_Receiver_Transmitter
|
.equ COM_HALFBIT_LENGTH = 26000 ; see https://de.wikipedia.org/wiki/Universal_Asynchronous_Receiver_Transmitter
|
||||||
|
|
||||||
.equ COM_DDR_DATA = DDRA
|
.equ COM_TXD_DDR = DDRA
|
||||||
.equ COM_PORT_DATA = PORTA
|
.equ COM_TXD_DATA = PORTA
|
||||||
.equ COM_PIN_DATA = PINA
|
.equ COM_TXD_PIN = PORTA1
|
||||||
.equ COM_PINNUM_DATA = PORTA1
|
|
||||||
|
|
||||||
.equ COM_DDR_ATTN = DDRA
|
.equ COM_RXD_DDR = DDRA
|
||||||
.equ COM_PORT_ATTN = PORTA
|
.equ COM_RXD_INPUT = PINA
|
||||||
.equ COM_PIN_ATTN = PINA
|
.equ COM_RXD_OUTPUT = PORTA
|
||||||
.equ COM_PINNUM_ATTN = PORTA7
|
.equ COM_RXD_PIN = PORTA1
|
||||||
|
|
||||||
|
.equ COM_ATTN_DDR = DDRA
|
||||||
|
.equ COM_ATTN_INPUT = PINA
|
||||||
|
.equ COM_ATTN_OUTPUT = PORTA
|
||||||
|
.equ COM_ATTN_PIN = PORTA7
|
||||||
|
|
||||||
.equ COM_IRQ_ADDR_ATTN = PCMSK0
|
.equ COM_IRQ_ADDR_ATTN = PCMSK0
|
||||||
.equ COM_IRQ_BIT_ATTN = PCINT7 ; bit 7 in PCMSK0
|
.equ COM_IRQ_BIT_ATTN = PCINT7 ; bit 7 in PCMSK0
|
||||||
|
|||||||
@@ -93,7 +93,7 @@
|
|||||||
; rjmp main ; Reset vector
|
; rjmp main ; Reset vector
|
||||||
rjmp BOOTLOADER_ADDR ; Reset vector ; use this for flashed system
|
rjmp BOOTLOADER_ADDR ; Reset vector ; use this for flashed system
|
||||||
reti ; EXT_INT0
|
reti ; EXT_INT0
|
||||||
rjmp com2IsrPcint0 ; PCI0
|
rjmp uartBitbangIsrPcint0 ; PCI0
|
||||||
reti ; PCI1
|
reti ; PCI1
|
||||||
reti ; WATCHDOG
|
reti ; WATCHDOG
|
||||||
reti ; ICP1
|
reti ; ICP1
|
||||||
@@ -143,6 +143,11 @@ firmwareStart: rjmp main
|
|||||||
#ifdef MODULES_COM
|
#ifdef MODULES_COM
|
||||||
.include "modules/com2/defs.asm"
|
.include "modules/com2/defs.asm"
|
||||||
.include "modules/com2/main.asm"
|
.include "modules/com2/main.asm"
|
||||||
|
.include "modules/com2/buffer.asm"
|
||||||
|
.include "modules/uart_bitbang/defs.asm"
|
||||||
|
.include "modules/uart_bitbang/main.asm"
|
||||||
|
.include "modules/uart_bitbang/bytelevel.asm"
|
||||||
|
.include "modules/uart_bitbang/packetlevel.asm"
|
||||||
#ifdef MODULES_COM_WITH_ADDR_PROTO
|
#ifdef MODULES_COM_WITH_ADDR_PROTO
|
||||||
.include "modules/comproto/defs.asm"
|
.include "modules/comproto/defs.asm"
|
||||||
.include "modules/comproto/main.asm"
|
.include "modules/comproto/main.asm"
|
||||||
|
|||||||
@@ -104,9 +104,9 @@ main:
|
|||||||
; ***************************************************************************
|
; ***************************************************************************
|
||||||
; includes
|
; includes
|
||||||
|
|
||||||
.include "modules/com2/lowlevel.asm"
|
.include "modules/uart_bitbang/bytelevel.asm"
|
||||||
|
.include "modules/uart_bitbang/packetlevel.asm"
|
||||||
.include "modules/com2/crc.asm"
|
.include "modules/com2/crc.asm"
|
||||||
.include "modules/com2/packets.asm"
|
|
||||||
.include "common/crc8.asm"
|
.include "common/crc8.asm"
|
||||||
.include "common/utils_wait_fixed.asm"
|
.include "common/utils_wait_fixed.asm"
|
||||||
.include "common/utils_copy_from_flash.asm"
|
.include "common/utils_copy_from_flash.asm"
|
||||||
|
|||||||
@@ -48,15 +48,20 @@
|
|||||||
|
|
||||||
.equ COM_BIT_LENGTH = 52000 ; 104000ns=9600, 52000ns=19200, 26000ns=38400
|
.equ COM_BIT_LENGTH = 52000 ; 104000ns=9600, 52000ns=19200, 26000ns=38400
|
||||||
.equ COM_HALFBIT_LENGTH = 26000 ; see https://de.wikipedia.org/wiki/Universal_Asynchronous_Receiver_Transmitter
|
.equ COM_HALFBIT_LENGTH = 26000 ; see https://de.wikipedia.org/wiki/Universal_Asynchronous_Receiver_Transmitter
|
||||||
.equ COM_DDR_DATA = DDRA
|
|
||||||
.equ COM_PORT_DATA = PORTA
|
|
||||||
.equ COM_PIN_DATA = PINA
|
|
||||||
.equ COM_PINNUM_DATA = PORTA1
|
|
||||||
|
|
||||||
.equ COM_DDR_ATTN = DDRA
|
.equ COM_TXD_DDR = DDRA
|
||||||
.equ COM_PORT_ATTN = PORTA
|
.equ COM_TXD_DATA = PORTA
|
||||||
.equ COM_PIN_ATTN = PINA
|
.equ COM_TXD_PIN = PORTA1
|
||||||
.equ COM_PINNUM_ATTN = PORTA7
|
|
||||||
|
.equ COM_RXD_DDR = DDRA
|
||||||
|
.equ COM_RXD_INPUT = PINA
|
||||||
|
.equ COM_RXD_OUTPUT = PORTA
|
||||||
|
.equ COM_RXD_PIN = PORTA1
|
||||||
|
|
||||||
|
.equ COM_ATTN_DDR = DDRA
|
||||||
|
.equ COM_ATTN_INPUT = PINA
|
||||||
|
.equ COM_ATTN_OUTPUT = PORTA
|
||||||
|
.equ COM_ATTN_PIN = PORTA7
|
||||||
|
|
||||||
.equ COM_IRQ_ADDR_ATTN = PCMSK0
|
.equ COM_IRQ_ADDR_ATTN = PCMSK0
|
||||||
.equ COM_IRQ_BIT_ATTN = PCINT7 ; bit 7 in PCMSK0
|
.equ COM_IRQ_BIT_ATTN = PCINT7 ; bit 7 in PCMSK0
|
||||||
|
|||||||
@@ -98,7 +98,7 @@
|
|||||||
; rjmp main ; Reset vector
|
; rjmp main ; Reset vector
|
||||||
rjmp BOOTLOADER_ADDR ; Reset vector ; use this for flashed system
|
rjmp BOOTLOADER_ADDR ; Reset vector ; use this for flashed system
|
||||||
reti ; EXT_INT0
|
reti ; EXT_INT0
|
||||||
rjmp com2IsrPcint0 ; PCI0
|
rjmp uartBitbangIsrPcint0 ; PCI0
|
||||||
reti ; PCI1
|
reti ; PCI1
|
||||||
reti ; WATCHDOG
|
reti ; WATCHDOG
|
||||||
reti ; ICP1
|
reti ; ICP1
|
||||||
@@ -148,6 +148,11 @@ firmwareStart: rjmp main
|
|||||||
#ifdef MODULES_COM
|
#ifdef MODULES_COM
|
||||||
.include "modules/com2/defs.asm"
|
.include "modules/com2/defs.asm"
|
||||||
.include "modules/com2/main.asm"
|
.include "modules/com2/main.asm"
|
||||||
|
.include "modules/com2/buffer.asm"
|
||||||
|
.include "modules/uart_bitbang/defs.asm"
|
||||||
|
.include "modules/uart_bitbang/main.asm"
|
||||||
|
.include "modules/uart_bitbang/bytelevel.asm"
|
||||||
|
.include "modules/uart_bitbang/packetlevel.asm"
|
||||||
#ifdef MODULES_COM_WITH_ADDR_PROTO
|
#ifdef MODULES_COM_WITH_ADDR_PROTO
|
||||||
.include "modules/comproto/defs.asm"
|
.include "modules/comproto/defs.asm"
|
||||||
.include "modules/comproto/main.asm"
|
.include "modules/comproto/main.asm"
|
||||||
|
|||||||
@@ -105,9 +105,9 @@ main:
|
|||||||
; ***************************************************************************
|
; ***************************************************************************
|
||||||
; includes
|
; includes
|
||||||
|
|
||||||
.include "modules/com2/lowlevel.asm"
|
.include "modules/uart_bitbang/bytelevel.asm"
|
||||||
|
.include "modules/uart_bitbang/packetlevel.asm"
|
||||||
.include "modules/com2/crc.asm"
|
.include "modules/com2/crc.asm"
|
||||||
.include "modules/com2/packets.asm"
|
|
||||||
.include "common/crc8.asm"
|
.include "common/crc8.asm"
|
||||||
.include "common/utils_wait_fixed.asm"
|
.include "common/utils_wait_fixed.asm"
|
||||||
.include "common/utils_copy_from_flash.asm"
|
.include "common/utils_copy_from_flash.asm"
|
||||||
|
|||||||
@@ -48,15 +48,20 @@
|
|||||||
.equ COM_BIT_LENGTH = 52000 ; 104000ns=9600, 52000ns=19200, 26000ns=38400
|
.equ COM_BIT_LENGTH = 52000 ; 104000ns=9600, 52000ns=19200, 26000ns=38400
|
||||||
.equ COM_HALFBIT_LENGTH = 26000 ; see https://de.wikipedia.org/wiki/Universal_Asynchronous_Receiver_Transmitter
|
.equ COM_HALFBIT_LENGTH = 26000 ; see https://de.wikipedia.org/wiki/Universal_Asynchronous_Receiver_Transmitter
|
||||||
|
|
||||||
.equ COM_DDR_DATA = DDRA
|
.equ COM_TXD_DDR = DDRA
|
||||||
.equ COM_PORT_DATA = PORTA
|
.equ COM_TXD_DATA = PORTA
|
||||||
.equ COM_PIN_DATA = PINA
|
.equ COM_TXD_PIN = PORTA0
|
||||||
.equ COM_PINNUM_DATA = PORTA0
|
|
||||||
|
.equ COM_RXD_DDR = DDRA
|
||||||
|
.equ COM_RXD_INPUT = PINA
|
||||||
|
.equ COM_RXD_OUTPUT = PORTA
|
||||||
|
.equ COM_RXD_PIN = PORTA0
|
||||||
|
|
||||||
|
.equ COM_ATTN_DDR = DDRA
|
||||||
|
.equ COM_ATTN_INPUT = PINA
|
||||||
|
.equ COM_ATTN_OUTPUT = PORTA
|
||||||
|
.equ COM_ATTN_PIN = PORTA1
|
||||||
|
|
||||||
.equ COM_DDR_ATTN = DDRA
|
|
||||||
.equ COM_PORT_ATTN = PORTA
|
|
||||||
.equ COM_PIN_ATTN = PINA
|
|
||||||
.equ COM_PINNUM_ATTN = PORTA1
|
|
||||||
|
|
||||||
.equ COM_IRQ_ADDR_ATTN = PCMSK0
|
.equ COM_IRQ_ADDR_ATTN = PCMSK0
|
||||||
.equ COM_IRQ_BIT_ATTN = 1 ; bit 1 in PCMSK0
|
.equ COM_IRQ_BIT_ATTN = 1 ; bit 1 in PCMSK0
|
||||||
|
|||||||
@@ -87,7 +87,7 @@
|
|||||||
; rjmp main ; Reset vector
|
; rjmp main ; Reset vector
|
||||||
rjmp BOOTLOADER_ADDR ; Reset vector ; use this for flashed system
|
rjmp BOOTLOADER_ADDR ; Reset vector ; use this for flashed system
|
||||||
reti ; EXT_INT0
|
reti ; EXT_INT0
|
||||||
rjmp com2IsrPcint0 ; PCI0
|
rjmp uartBitbangIsrPcint0 ; PCI0
|
||||||
reti ; PCI1
|
reti ; PCI1
|
||||||
reti ; WATCHDOG
|
reti ; WATCHDOG
|
||||||
reti ; ICP1
|
reti ; ICP1
|
||||||
@@ -137,6 +137,11 @@ firmwareStart: rjmp main
|
|||||||
#ifdef MODULES_COM
|
#ifdef MODULES_COM
|
||||||
.include "modules/com2/defs.asm"
|
.include "modules/com2/defs.asm"
|
||||||
.include "modules/com2/main.asm"
|
.include "modules/com2/main.asm"
|
||||||
|
.include "modules/com2/buffer.asm"
|
||||||
|
.include "modules/uart_bitbang/defs.asm"
|
||||||
|
.include "modules/uart_bitbang/main.asm"
|
||||||
|
.include "modules/uart_bitbang/bytelevel.asm"
|
||||||
|
.include "modules/uart_bitbang/packetlevel.asm"
|
||||||
#ifdef MODULES_COM_WITH_ADDR_PROTO
|
#ifdef MODULES_COM_WITH_ADDR_PROTO
|
||||||
.include "modules/comproto/defs.asm"
|
.include "modules/comproto/defs.asm"
|
||||||
.include "modules/comproto/main.asm"
|
.include "modules/comproto/main.asm"
|
||||||
|
|||||||
@@ -101,9 +101,9 @@ main:
|
|||||||
; ***************************************************************************
|
; ***************************************************************************
|
||||||
; includes
|
; includes
|
||||||
|
|
||||||
.include "modules/com2/lowlevel.asm"
|
.include "modules/uart_bitbang/bytelevel.asm"
|
||||||
|
.include "modules/uart_bitbang/packetlevel.asm"
|
||||||
.include "modules/com2/crc.asm"
|
.include "modules/com2/crc.asm"
|
||||||
.include "modules/com2/packets.asm"
|
|
||||||
.include "common/crc8.asm"
|
.include "common/crc8.asm"
|
||||||
.include "common/utils_wait_fixed.asm"
|
.include "common/utils_wait_fixed.asm"
|
||||||
.include "common/utils_copy_from_flash.asm"
|
.include "common/utils_copy_from_flash.asm"
|
||||||
|
|||||||
@@ -45,16 +45,6 @@
|
|||||||
.equ COM_BIT_LENGTH = 52000 ; 104000ns=9600, 52000ns=19200, 26000ns=38400
|
.equ COM_BIT_LENGTH = 52000 ; 104000ns=9600, 52000ns=19200, 26000ns=38400
|
||||||
.equ COM_HALFBIT_LENGTH = 26000 ; see https://de.wikipedia.org/wiki/Universal_Asynchronous_Receiver_Transmitter
|
.equ COM_HALFBIT_LENGTH = 26000 ; see https://de.wikipedia.org/wiki/Universal_Asynchronous_Receiver_Transmitter
|
||||||
|
|
||||||
.equ COM_DDR_DATA = DDRB
|
|
||||||
.equ COM_PORT_DATA = PORTB
|
|
||||||
.equ COM_PIN_DATA = PINB
|
|
||||||
.equ COM_PINNUM_DATA = PORTB1
|
|
||||||
|
|
||||||
.equ COM_DDR_ATTN = DDRB
|
|
||||||
.equ COM_PORT_ATTN = PORTB
|
|
||||||
.equ COM_PIN_ATTN = PINB
|
|
||||||
.equ COM_PINNUM_ATTN = PORTB2
|
|
||||||
|
|
||||||
.equ COM_IRQ_ADDR_ATTN = PCMSK
|
.equ COM_IRQ_ADDR_ATTN = PCMSK
|
||||||
.equ COM_IRQ_BIT_ATTN = PCINT2 ; bit 2 in PCMSK0 (PCINT2)
|
.equ COM_IRQ_BIT_ATTN = PCINT2 ; bit 2 in PCMSK0 (PCINT2)
|
||||||
.equ COM_IRQ_GIFR_ATTN = PCIF
|
.equ COM_IRQ_GIFR_ATTN = PCIF
|
||||||
|
|||||||
@@ -159,6 +159,12 @@ firmwareStart: rjmp main
|
|||||||
.include "modules/sk6812/main.asm"
|
.include "modules/sk6812/main.asm"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
; test
|
||||||
|
#include "modules/uart_irq/defs.asm"
|
||||||
|
#include "modules/uart_irq/iface.asm"
|
||||||
|
#include "modules/uart_irq/iface1.asm"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; ***************************************************************************
|
; ***************************************************************************
|
||||||
; data in SRAM
|
; data in SRAM
|
||||||
|
|||||||
@@ -72,12 +72,11 @@ bootLoader:
|
|||||||
; rcall watchdogOff ; turn off watchdog timer (sometimes it stays on after reboot)
|
; rcall watchdogOff ; turn off watchdog timer (sometimes it stays on after reboot)
|
||||||
|
|
||||||
; setup pins and interrupts
|
; setup pins and interrupts
|
||||||
cbi COM_PORT_DATA, COM_PINNUM_DATA ; disable internal pullup for DATA
|
cbi COM_TXD_DATA, COM_TXD_PIN ; disable internal pullup for DATA
|
||||||
cbi COM_DDR_DATA, COM_PINNUM_DATA ; set DATA port as input
|
cbi COM_TXD_DDR, COM_TXD_PIN ; set DATA port as input
|
||||||
|
|
||||||
cbi COM_PORT_ATTN, COM_PINNUM_ATTN ; disable internal pullup for ATTN
|
|
||||||
cbi COM_DDR_ATTN, COM_PINNUM_ATTN ; set ATTN port as input
|
|
||||||
|
|
||||||
|
cbi COM_ATTN_OUTPUT, COM_ATTN_PIN ; disable internal pullup for ATTN
|
||||||
|
cbi COM_ATTN_DDR, COM_ATTN_PIN ; set ATTN port as input
|
||||||
|
|
||||||
sbi LED_DDR, LED_PINNUM ; out
|
sbi LED_DDR, LED_PINNUM ; out
|
||||||
cbi LED_PORT, LED_PINNUM ; on
|
cbi LED_PORT, LED_PINNUM ; on
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ flashWaitForSpecificMessage_isLow: ; is low, receive message, check for
|
|||||||
ldi r17, FLASH_RECVBUFFER_MAXLEN-3
|
ldi r17, FLASH_RECVBUFFER_MAXLEN-3
|
||||||
ldi xl, LOW(flashRecvBuffer)
|
ldi xl, LOW(flashRecvBuffer)
|
||||||
ldi xh, HIGH(flashRecvBuffer)
|
ldi xh, HIGH(flashRecvBuffer)
|
||||||
rcall com2ReceivePacketRaw
|
rcall uartBitbang_ReceivePacketIntoBuffer
|
||||||
pop r17
|
pop r17
|
||||||
brcc flashWaitForSpecificMessage_waitAttnHigh
|
brcc flashWaitForSpecificMessage_waitAttnHigh
|
||||||
ldi xl, LOW(flashRecvBuffer)
|
ldi xl, LOW(flashRecvBuffer)
|
||||||
@@ -125,9 +125,9 @@ flashWaitForAttnState1ms:
|
|||||||
ldi r24, 100
|
ldi r24, 100
|
||||||
flashWaitForAttnState1ms_loop:
|
flashWaitForAttnState1ms_loop:
|
||||||
push r17
|
push r17
|
||||||
in r17, COM_PIN_ATTN
|
in r17, COM_ATTN_INPUT
|
||||||
eor r17, r16
|
eor r17, r16
|
||||||
andi r17, (1<<COM_PINNUM_ATTN)
|
andi r17, (1<<COM_ATTN_PIN)
|
||||||
pop r17
|
pop r17
|
||||||
breq flashWaitForAttnState1ms_stateReached
|
breq flashWaitForAttnState1ms_stateReached
|
||||||
rcall Utils_WaitFor10MicroSecs ; wait for 10us (R22)
|
rcall Utils_WaitFor10MicroSecs ; wait for 10us (R22)
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
flashSendPacketUntilSuccess:
|
flashSendPacketUntilSuccess:
|
||||||
push xl
|
push xl
|
||||||
push xh
|
push xh
|
||||||
rcall COM2_SendPacketWithAttn ; (R16, R17, R21, R22, X)
|
rcall uartBitbang_SendPacket ; (R16, R17, R21, R22, X)
|
||||||
pop xh
|
pop xh
|
||||||
pop xl
|
pop xl
|
||||||
brcc flashSendPacket_error
|
brcc flashSendPacket_error
|
||||||
@@ -50,7 +50,7 @@ flashSendPacket_error:
|
|||||||
; REGS: (R16, R17, R18, R22, R24, R25)
|
; REGS: (R16, R17, R18, R22, R24, R25)
|
||||||
|
|
||||||
flashWaitForAttnHigh:
|
flashWaitForAttnHigh:
|
||||||
rcall com2WaitForAttnHigh ; (r17, r22)
|
rcall uartBitbang_WaitForAttnHigh ; (r17, r22)
|
||||||
brcc flashWaitForAttnHigh_stillLow
|
brcc flashWaitForAttnHigh_stillLow
|
||||||
ret
|
ret
|
||||||
flashWaitForAttnHigh_stillLow:
|
flashWaitForAttnHigh_stillLow:
|
||||||
|
|||||||
61
avr/modules/motion/main.asm
Normal file
61
avr/modules/motion/main.asm
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
; ***************************************************************************
|
||||||
|
; copyright : (C) 2024 by Martin Preuss
|
||||||
|
; email : martin@libchipcard.de
|
||||||
|
;
|
||||||
|
; ***************************************************************************
|
||||||
|
; * This file is part of the project "AqHome". *
|
||||||
|
; * Please see toplevel file COPYING of that project for license details. *
|
||||||
|
; ***************************************************************************
|
||||||
|
|
||||||
|
; - check motion
|
||||||
|
; - motion detected?
|
||||||
|
; - yes:
|
||||||
|
; - set motion HW bit
|
||||||
|
; - reset motion timeout counter
|
||||||
|
; - SW bit set?
|
||||||
|
; - no:
|
||||||
|
; - report motion
|
||||||
|
; - reset motionReportTimeout (use lower value to repeat motion message once)
|
||||||
|
; - set motion SW bit
|
||||||
|
; - yes
|
||||||
|
; - dec motionReportTimeout
|
||||||
|
; - 0?
|
||||||
|
; - report current SW state
|
||||||
|
; - reset motionReportTimeout (use higher value since motion should already be known)
|
||||||
|
; - no:
|
||||||
|
; - clear motion hw bit
|
||||||
|
; - dec motionTimeout
|
||||||
|
; - 0?
|
||||||
|
; - yes:
|
||||||
|
; - clear SW motion bit
|
||||||
|
; - report no motion
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.equ MOTION_STATE_MOTION_HW_BIT = 0
|
||||||
|
.equ MOTION_STATE_MOTION_SW_BIT = 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.dseg
|
||||||
|
|
||||||
|
motionDataBegin:
|
||||||
|
motionState: .byte 1
|
||||||
|
motionTimeout: .byte 1
|
||||||
|
motionReportTimeout: .byte 1
|
||||||
|
motionDataEnd:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.cseg
|
||||||
|
|
||||||
|
|
||||||
|
Motion_Init:
|
||||||
|
Motion_Fini:
|
||||||
|
Motion_Run:
|
||||||
|
Motion_Every100ms:
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -184,5 +184,19 @@ uartBitbang_WaitForDataHigh:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; ---------------------------------------------------------------------------
|
||||||
|
; @routine uartBitbang_WaitForAttnHigh
|
||||||
|
;
|
||||||
|
; Wait up to 1ms for data pin to become high
|
||||||
|
; @return CFLAG set if okay, clear otherwise
|
||||||
|
; @clobbers R17, R22
|
||||||
|
|
||||||
|
uartBitbang_WaitForAttnHigh:
|
||||||
|
UART_BB_M_WAIT_FOR_PIN_HIGH COM_ATTN_INPUT, COM_ATTN_PIN
|
||||||
|
ret
|
||||||
|
; @end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user