From 0fafb36100e7ca1b1538261e3617bd260c55acd2 Mon Sep 17 00:00:00 2001 From: Martin Preuss Date: Thu, 12 Sep 2024 11:46:02 +0200 Subject: [PATCH] avr: added definitions to devices. --- avr/devices/n11/n11_defs.asm | 21 +++++++++++++++------ avr/devices/n11/n11_main.asm | 31 ++++++++++++++++++++++++------- 2 files changed, 39 insertions(+), 13 deletions(-) diff --git a/avr/devices/n11/n11_defs.asm b/avr/devices/n11/n11_defs.asm index c124361..52bd6f0 100644 --- a/avr/devices/n11/n11_defs.asm +++ b/avr/devices/n11/n11_defs.asm @@ -32,7 +32,6 @@ - ; --------------------------------------------------------------------------- ; LED module @@ -47,8 +46,8 @@ ; --------------------------------------------------------------------------- ; COM module -.equ COM_BIT_LENGTH = 52000 ; 104000=9600, 52000=19200, 26000=38400 - +.equ COM_BIT_LENGTH = 52000 ; 104000ns=9600, 52000ns=19200, 26000ns=38400 + ; 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 @@ -109,12 +108,12 @@ ; ADC/CNY70 -.equ CNY70_PORT_LED = PORTB1 +.equ CNY70_PORT_LED = PORTB .equ CNY70_DDR_LED = DDRB .equ CNY70_PINNUM_LED = PORTB1 -.equ CNY70_PORT_ADC = PORTA5 ; adc5 -.equ CNY70_DDR_ADC = DDRB +.equ CNY70_PORT_ADC = PORTA ; adc5 +.equ CNY70_DDR_ADC = DDRA .equ CNY70_PINNUM_ADC = PORTA5 .equ CNY70_MUX_ADC = MUX5 .equ CNY70_ADCSRB_ADC = ADC5D @@ -142,4 +141,14 @@ .equ REED2_PINNUM = PORTA5 +; --------------------------------------------------------------------------- +; 1-Wire Master +; + +.equ OWI_DDR = DDRB +.equ OWI_PORTOUT = PORTB +.equ OWI_PORTIN = PINB +.equ OWI_PINNUM = PORTB2 + + diff --git a/avr/devices/n11/n11_main.asm b/avr/devices/n11/n11_main.asm index e693107..37c5c1e 100644 --- a/avr/devices/n11/n11_main.asm +++ b/avr/devices/n11/n11_main.asm @@ -58,13 +58,14 @@ ;#define MODULES_LED #define MODULES_LED_SIMPLE #define MODULES_TWI_MASTER -;#define MODULES_LCD +#define MODULES_OWI_MASTER +#define MODULES_LCD #define LCD_MINIMAL_FONT #define MODULES_SI7021 #define MODULES_STATS ;#define MODULES_CNY70 #define MODULES_REED - +#define MODULES_DS18B20 ; --------------------------------------------------------------------------- @@ -73,9 +74,10 @@ .equ VALUE_ID_TEMP1 = 0x01 .equ VALUE_ID_HUM1 = 0x02 -.equ VALUE_ID_ADC = 0x03 -.equ VALUE_ID_REED1 = 0x04 -.equ VALUE_ID_REED2 = 0x05 +.equ VALUE_ID_ADC = 0x03 +.equ VALUE_ID_REED1 = 0x04 +.equ VALUE_ID_REED2 = 0x05 +.equ VALUE_ID_DS18B20_TEMP = 0x06 @@ -158,12 +160,18 @@ firmwareStart: rjmp main #ifdef MODULES_TWI_MASTER .include "modules/twimaster/main.asm" #endif +#ifdef MODULES_OWI_MASTER + .include "modules/owimaster/main.asm" +#endif #ifdef MODULES_LCD .include "modules/lcd/main.asm" #endif #ifdef MODULES_SI7021 .include "modules/si7021/main.asm" #endif +#ifdef MODULES_DS18B20 + .include "modules/ds18b20/main.asm" +#endif #ifdef MODULES_STATS .include "modules/stats/main.asm" #endif @@ -197,6 +205,9 @@ sramTimerEnqueueValues: .byte 2 #ifdef MODULES_LCD sramPeriodicalLcdMark: .byte 2 #endif +#ifdef MODULES_DS18B20 + sramDs18b20Timer: .byte 2 +#endif ; *************************************************************************** @@ -233,7 +244,10 @@ timerList: .dw sramTimerSI7021SendHumidity, sendHumidity, TIMER_FLAGS_IF_ADDR, 600 ; every 60s #endif #ifdef MODULES_CNY70 - .dw sramTimerCny70SendAdc, CNY70_OnTimer, TIMER_FLAGS_IF_ADDR, 50 ; every 5s + .dw sramTimerCny70SendAdc, CNY70_OnTimer, TIMER_FLAGS_IF_ADDR, 50 ; every 5s +#endif +#ifdef MODULES_DS18B20 + .dw sramDs18b20Timer, Ds18b20_OnTimer, 0, 300 ; every 30s #endif .dw 0 ; end of list @@ -258,7 +272,10 @@ periodicalLcdMark: writeStats: - rcall printSendStats +#ifdef MODULES_DS18B20 + rcall printDs +#endif +; rcall printSendStats ret #endif