diff --git a/avr/devices/n27/defs.asm b/avr/devices/n27/defs.asm index 26d3f8b..21f980e 100644 --- a/avr/devices/n27/defs.asm +++ b/avr/devices/n27/defs.asm @@ -70,6 +70,17 @@ .equ COM_IRQ_GIMSK_ATTN = PCIE0 +.equ COM_CLK_DDR = DDRA +.equ COM_CLK_INPUT = PINA +.equ COM_CLK_OUTPUT = PORTA +.equ COM_CLK_PIN = PORTA7 + +.equ COM_IRQ_ADDR_CLK = PCMSK0 +.equ COM_IRQ_BIT_CLK = PCINT7 ; bit 7 in PCMSK0 +.equ COM_IRQ_GIFR_CLK = PCIF0 +.equ COM_IRQ_GIMSK_CLK = PCIE0 + + ; --------------------------------------------------------------------------- ; TWI master module diff --git a/avr/devices/n27/main/main.asm b/avr/devices/n27/main/main.asm index e340261..f1695b2 100644 --- a/avr/devices/n27/main/main.asm +++ b/avr/devices/n27/main/main.asm @@ -61,7 +61,8 @@ #define MODULES_CLOCK #define MODULES_LED_SIMPLE #define MODULES_NETWORK -#define MODULES_UART_BITBANG +;#define MODULES_UART_BITBANG +#define MODULES_COM2W #define MODULES_TWI_MASTER ;#define MODULES_LCD ;#define LCD_MINIMAL_FONT @@ -123,7 +124,8 @@ ; rjmp main ; Reset vector rjmp BOOTLOADER_ADDR ; Reset vector ; use this for flashed system reti ; EXT_INT0 - rjmp UART_BitBang_PcintIsr ; PCI0 +; rjmp UART_BitBang_PcintIsr ; PCI0 + rjmp com2wPcintIsr ; PCI0 reti ; PCI1 reti ; WATCHDOG reti ; ICP1 @@ -218,7 +220,8 @@ onEveryLoop: ; --------------------------------------------------------------------------- ; defines for network interface -.equ netInterfaceData = uart_bitbang_iface +;.equ netInterfaceData = uart_bitbang_iface +.equ netInterfaceData = com2w_iface diff --git a/avr/devices/r05/defs.asm b/avr/devices/r05/defs.asm index bfd2e29..7e1b8d5 100644 --- a/avr/devices/r05/defs.asm +++ b/avr/devices/r05/defs.asm @@ -56,11 +56,11 @@ .equ COM_HALFBIT_LENGTH = 26000 ; see https://de.wikipedia.org/wiki/Universal_Asynchronous_Receiver_Transmitter ; settings for comOnUart0 -;.equ COM_DATA_DDR = DDRA -;.equ COM_DATA_INPUT = PINA -;.equ COM_DATA_OUTPUT = PORTA -;.equ COM_DATA_PUE = PUEA -;.equ COM_DATA_PIN = PORTA2 +.equ COM_DATA0_DDR = DDRA +.equ COM_DATA0_INPUT = PINA +.equ COM_DATA0_OUTPUT = PORTA +.equ COM_DATA0_PUE = PUEA +.equ COM_DATA0_PIN = PORTA2 .equ COM_ATTN0_DDR = DDRA .equ COM_ATTN0_INPUT = PINA @@ -87,6 +87,25 @@ .equ COM_IRQ_GIMSK_ATTN1 = PCIE1 +; settings for comOnUart1 +.equ COM_DATA1_DDR = DDRA +.equ COM_DATA1_INPUT = PINA +.equ COM_DATA1_OUTPUT = PORTA +.equ COM_DATA1_PUE = PUEA +.equ COM_DATA1_PIN = PORTA4 + +.equ COM_CLK1_DDR = DDRB +.equ COM_CLK1_INPUT = PINB +.equ COM_CLK1_OUTPUT = PORTB +.equ COM_CLK1_PUE = PUEB +.equ COM_CLK1_PIN = PORTB1 + +.equ COM_IRQ_ADDR_CLK1 = PCMSK1 +.equ COM_IRQ_BIT_CLK1 = PCINT9 ; bit PCINT9 in PCMSK1 +.equ COM_IRQ_GIFR_CLK1 = PCIF1 +.equ COM_IRQ_GIMSK_CLK1 = PCIE1 + + ; --------------------------------------------------------------------------- ; TWI master module diff --git a/avr/devices/r05/main/main.asm b/avr/devices/r05/main/main.asm index 01ed840..8a48ebe 100644 --- a/avr/devices/r05/main/main.asm +++ b/avr/devices/r05/main/main.asm @@ -70,12 +70,13 @@ #endif #define MODULES_NETWORK #define MODULES_COMONUART0 -#define MODULES_COMONUART1 +;#define MODULES_COMONUART1 +#define MODULES_COM2W1 ;#define APPS_NETWORK #define APPS_ROUTER -.equ NET_BUFFERS_NUM = 11 +.equ NET_BUFFERS_NUM = 10 @@ -102,7 +103,7 @@ rjmp BOOTLOADER_ADDR ; 1: RESET Reset vector use this for flashed system reti ; 2: INT0 External Interrupt Request 0 rjmp ComOnUart0_AttnChangeIsr ; 3: PCINT0 Pin Change Interrupt 0 - rjmp ComOnUart1_AttnChangeIsr ; 4: PCINT1 Pin Change Interrupt 1 + rjmp COM2W1_ClkChangeIsr ; 4: PCINT1 Pin Change Interrupt 1 reti ; 5: WDT Watchdog Time-out reti ; 6: TIM1_CAPT Timer/Counter1 Capture Event reti ; 7: TIM1_COMPA (OC1A) Timer/Counter1 Compare Match A @@ -125,7 +126,7 @@ reti ; 24: USART0_DRE USART0 Data Register Empty reti ; 25: USART0_TXC USART0 Tx Complete reti ; 26: USART1_RXS USART1 Rx Start - rjmp ComOnUart1_RxCharIsr ; 27: USART1_RXC USART1 Rx Complete + reti ; 27: USART1_RXC USART1 Rx Complete reti ; 28: USART1_DRE USART1 Data Register Empty reti ; 29: USART1_TXC USART1 Tx Complete reti ; 30: TWI Two-Wire-Interface @@ -210,7 +211,7 @@ onMessageReceived: ; defines for network interface .equ netInterfaceData = comOnUart0_iface -.equ netInterfaceData2 = comOnUart1_iface +.equ netInterfaceData2 = com2w1_iface diff --git a/avr/devices/t03/defs.asm b/avr/devices/t03/defs.asm index c0841b4..cf5f970 100644 --- a/avr/devices/t03/defs.asm +++ b/avr/devices/t03/defs.asm @@ -79,6 +79,25 @@ +.equ COM_DATA_DDR = DDRA +.equ COM_DATA_INPUT = PINA +.equ COM_DATA_OUTPUT = PORTA +.equ COM_DATA_PUE = PUEA +.equ COM_DATA_PIN = PORTA2 + +.equ COM_CLK_DDR = DDRA +.equ COM_CLK_INPUT = PINA +.equ COM_CLK_OUTPUT = PORTA +.equ COM_CLK_PUE = PUEA +.equ COM_CLK_PIN = PORTA0 + +.equ COM_IRQ_ADDR_CLK = PCMSK0 +.equ COM_IRQ_BIT_CLK = PCINT0 ; bit 0 in PCMSK0 +.equ COM_IRQ_GIFR_CLK = PCIF0 +.equ COM_IRQ_GIMSK_CLK = PCIE0 + + + ; --------------------------------------------------------------------------- ; 1-Wire Master ; diff --git a/avr/devices/t03/main/main.asm b/avr/devices/t03/main/main.asm index 8a1799b..c817180 100644 --- a/avr/devices/t03/main/main.asm +++ b/avr/devices/t03/main/main.asm @@ -74,7 +74,8 @@ ;#define MODULES_DS18B20 ;#define MODULES_MOTION #define MODULES_NETWORK -#define MODULES_COMONUART0 +#define MODULES_COM2W +;#define MODULES_COMONUART0 #define MODULES_TTYONUART1 #define APPS_STATS #define APPS_NETWORK @@ -109,7 +110,8 @@ rjmp BOOTLOADER_ADDR ; 1: RESET Reset vector use this for flashed system reti ; 2: INT0 External Interrupt Request 0 - rjmp ComOnUart0_AttnChangeIsr ; 3: PCINT0 Pin Change Interrupt 0 +; rjmp COM2W1_ClkChangeIsr ; 3: PCINT0 Pin Change Interrupt 0 + rjmp com2wPcintIsr ; 3: PCINT0 Pin Change Interrupt 0 reti ; 4: PCINT1 Pin Change Interrupt 1 reti ; 5: WDT Watchdog Time-out reti ; 6: TIM1_CAPT Timer/Counter1 Capture Event @@ -129,7 +131,8 @@ reti ; 20: TIM2_OVF (OVF2) Timer/Counter2 Overflow reti ; 21: SPI SPI Serial Transfer Complete reti ; 22: USART0_RXS USART0 Rx Start - rjmp ComOnUart0_RxCharIsr ; 23: USART0_RXC USART0 Rx Complete +; rjmp ComOnUart0_RxCharIsr ; 23: USART0_RXC USART0 Rx Complete + reti ; 23: USART0_RXC USART0 Rx Complete reti ; 24: USART0_DRE USART0 Data Register Empty reti ; 25: USART0_TXC USART0 Tx Complete reti ; 26: USART1_RXS USART1 Rx Start @@ -165,7 +168,7 @@ firmwareStart: onSystemStart: ; set interface number for UART0 ldi r16, COMONUART0_IFACENUM - sts comOnUart0_iface+NET_IFACE_OFFS_IFACENUM, r16 + sts netInterfaceData2+NET_IFACE_OFFS_IFACENUM, r16 ; set interface number for UART1 ldi r16, TTYONUART1_IFACENUM sts ttyOnUart1_iface+NET_IFACE_OFFS_IFACENUM, r16 @@ -246,7 +249,7 @@ letSysHandleMsg: ld r16, X cpi r16, 0xff breq letSysHandleMsg_forMe - lds r17, comOnUart0_iface+NET_IFACE_OFFS_ADDRESS + lds r17, netInterfaceData2+NET_IFACE_OFFS_ADDRESS cp r16, r17 brne letSysHandleMsg_end letSysHandleMsg_forMe: @@ -304,8 +307,8 @@ addMsgToInterface: clc ret addMsgToInterface_toUart0: - ldi yl, LOW(comOnUart0_iface) - ldi yh, HIGH(comOnUart0_iface) + ldi yl, LOW(netInterfaceData2) + ldi yh, HIGH(netInterfaceData2) rjmp NET_Interface_AddOutgoingMsgNum ; try to add msg to interface addMsgToInterface_toUart1: ldi yl, LOW(ttyOnUart1_iface) @@ -332,5 +335,6 @@ addMsgToInterface_toUart1: ; defines for network interface .equ netInterfaceData = ttyOnUart1_iface -.equ netInterfaceData2 = comOnUart0_iface +;.equ netInterfaceData2 = comOnUart0_iface +.equ netInterfaceData2 = com2w_iface