From 23cb3e62dc975166df25ed84a50269fb97f3e409 Mon Sep 17 00:00:00 2001 From: Martin Preuss Date: Sun, 5 Jul 2026 20:07:05 +0200 Subject: [PATCH] n32: use com2w2 instead of com2w --- avr/devices/n32/main/main.asm | 160 +++++++++++++++++++++++++--------- 1 file changed, 121 insertions(+), 39 deletions(-) diff --git a/avr/devices/n32/main/main.asm b/avr/devices/n32/main/main.asm index b9a822c..b88c7b6 100644 --- a/avr/devices/n32/main/main.asm +++ b/avr/devices/n32/main/main.asm @@ -53,7 +53,6 @@ - ; --------------------------------------------------------------------------- ; firmware settings including list of modules used @@ -63,7 +62,7 @@ ;#define MODULES_LED2 ;#define MODULES_LED3 #define MODULES_NETWORK -#define MODULES_COM2W +#define MODULES_COM2W2 ;#define MODULES_TWI_MASTER ;#define MODULES_LCD ;#define LCD_MINIMAL_FONT @@ -76,7 +75,8 @@ ;#define MODULES_MOTION ;#define MODULES_CCS811 ;#define MODULES_BRIGHTNESS -#define MODULES_MULTIFAN + +;#define MODULES_MULTIFAN #define APPS_NETWORK @@ -117,26 +117,25 @@ ; --------------------------------------------------------------------------- ; Reset and interrupt vectors - rjmp BOOTLOADER_ADDR ; 0x00: Reset vector Reset Vector - reti ; 0x01: INT0 External Interrupt 0 - rjmp com2wPcintIsr ; 0x02: PCI Pin Change Interrupt -; rjmp pinChangeIsr ; 0x02: PCI Pin Change Interrupt - reti ; 0x03: OC1A Timer/Counter1 Compare Match 1A - reti ; 0x04: OC1B Timer/Counter1 Compare Match 1B - reti ; 0x05: OVF1 Timer/Counter1 Overflow - reti ; 0x06: OVF0 Timer/Counter0 Overflow - reti ; 0x07: USI_START USI Start - reti ; 0x08: USI_OVF USI Overflow - reti ; 0x09: ERDY EEPROM Ready - reti ; 0x0a: ACI Analog Comparator - reti ; 0x0b: ADCC ADC Conversion Complete - reti ; 0x0c: WDT Watchdog Time-Out - reti ; 0x0d: INT1 External Interrupt 1 - rjmp baseTimerIrqOC0A ; 0x0e: OC0A Timer/Counter0 Compare Match A - reti ; 0x0f: OC0B Timer/Counter0 Compare Match B - reti ; 0x10: ICP0 Interrupt Capture Event for Timer/Counter0 - reti ; 0x11: OC1D Timer/Counter1 Compare Match D - reti ; 0x12: FAULT_PROT Timer/Counter1 Fault Protection + rjmp BOOTLOADER_ADDR ; 1: Reset vector Reset Vector + reti ; 2: INT0 External Interrupt 0 + reti ; 3: PCI Pin Change Interrupt + reti ; 4: OC1A Timer/Counter1 Compare Match 1A + reti ; 5: OC1B Timer/Counter1 Compare Match 1B + reti ; 6: OVF1 Timer/Counter1 Overflow + reti ; 7: OVF0 Timer/Counter0 Overflow + reti ; 8: USI_START USI Start + reti ; 9: USI_OVF USI Overflow + reti ; 10: ERDY EEPROM Ready + reti ; 11: ACI Analog Comparator + reti ; 12: ADCC ADC Conversion Complete + reti ; 13: WDT Watchdog Time-Out + rjmp com2w2PcintIsr ; 14: INT1 External Interrupt 1 + rjmp baseTimerIrqOC0A ; 15: OC0A Timer/Counter0 Compare Match A + reti ; 16: OC0B Timer/Counter0 Compare Match B + reti ; 17: ICP0 Interrupt Capture Event for Timer/Counter0 + reti ; 18: OC1D Timer/Counter1 Compare Match D + reti ; 19: FAULT_PROT Timer/Counter1 Fault Protection devInfoBlock: ; 12 bytes devInfoManufacturer: .db 'A', 'Q', 'U', 'A' @@ -151,6 +150,10 @@ firmwareVersion: .db FIRMWARE_VARIANT_TEMP_WINDOW, FIRMWARE_VERSION_MAJOR ; @routine firmwareStart @global firmwareStart: + ldi r16, 0xff + sts sysPortAValue, r16 + sts sysPortBValue, r16 + rjmp main ; @end @@ -202,6 +205,61 @@ onEveryLoop: ; @end + +; --------------------------------------------------------------------------- +; @routine comSetupIrq +; +; setup IRQ for COM2W module + +comIrqSetup: + inr r16, MCUCR + cbr r16, (1<