diff --git a/avr/main.asm b/avr/main.asm index 627ba80..a18b323 100644 --- a/avr/main.asm +++ b/avr/main.asm @@ -39,6 +39,8 @@ ; --------------------------------------------------------------------------- ; TWI master module +.equ LCD_TWI_ADDRESS = 0x3c + .equ TWI_DDR_SCL = DDRA .equ TWI_PORT_SCL = PORTA .equ TWI_PIN_SCL = PINA @@ -52,6 +54,12 @@ +; --------------------------------------------------------------------------- +; BMP 280 + +.equ BMP280_ADDR = 0x76 + + ; *************************************************************************** ; code segment @@ -92,6 +100,7 @@ .include "com.asm" .include "twimaster.asm" .include "lcd.asm" +.include "bmp280.asm" @@ -192,6 +201,7 @@ initModules: rcall Com_Init rcall TWI_Master_Init rcall LCD_Init + rcall BMP280_Init ret @@ -282,16 +292,6 @@ onEverySecond: ; USED: depending on called routines onEvery10s: - in r15, SREG ; debug - cli - push r15 - ldi r16, 219 - rcall COM_EnqueuePing - pop r15 - out SREG, r15 - - rcall printSendStats - ret @@ -308,8 +308,17 @@ onEvery10s: ; USED: depending on called routines onEveryMinute: - ldi r16, 219 - rcall COM_EnqueueComSendStats + in r15, SREG ; debug + cli + push r15 + ldi r16, 219 + rcall COM_EnqueueComSendStats + rcall printSendStats + + ;ldi r16, 219 + ;rcall COM_EnqueuePing + pop r15 + out SREG, r15 ret @@ -327,8 +336,6 @@ onEveryMinute: ; USED: depending on called routines onPacketReceived: - sbi DDRA, PORTA2 ; debug - sbi PINA, PORTA2 ; debug (toggle) clc ; not handled ret @@ -382,57 +389,61 @@ debugSendByte: printSendStats: - ldi r18, 0 - ldi r19, 2 - rcall LCD_SetCursor - ldi zl, LOW(textStatsPacketsIn) - ldi zh, HIGH(textStatsPacketsIn) - rcall LCD_PrintFromFlash - lds r18, comStatsPacketsIn - lds r19, comStatsPacketsIn+1 - rcall LCD_PrintHexWord - - ldi r18, 0 - ldi r19, 3 - rcall LCD_SetCursor - ldi zl, LOW(textStatsPacketsRecvErr) - ldi zh, HIGH(textStatsPacketsRecvErr) - rcall LCD_PrintFromFlash - lds r18, comStatsRecvErrs - lds r19, comStatsRecvErrs+1 - rcall LCD_PrintHexWord - - - ldi r18, 0 - ldi r19, 5 - rcall LCD_SetCursor - ldi zl, LOW(textStatsPacketsOut) - ldi zh, HIGH(textStatsPacketsOut) - rcall LCD_PrintFromFlash - lds r18, comStatsPacketsOut - lds r19, comStatsPacketsOut+1 - rcall LCD_PrintHexWord - - ldi r18, 0 - ldi r19, 6 - rcall LCD_SetCursor - ldi zl, LOW(textStatsCollisions) - ldi zh, HIGH(textStatsCollisions) - rcall LCD_PrintFromFlash - lds r18, comStatsCollisions - lds r19, comStatsCollisions+1 - rcall LCD_PrintHexWord - - ldi r18, 0 - ldi r19, 7 - rcall LCD_SetCursor - ldi zl, LOW(textStatsAborted) - ldi zh, HIGH(textStatsAborted) - rcall LCD_PrintFromFlash - lds r18, comStatsAborted - lds r19, comStatsAborted+1 - rcall LCD_PrintHexWord - + push r15 + in r15, SREG ; debug + cli + ldi r18, 0 + ldi r19, 2 + rcall LCD_SetCursor + ldi zl, LOW(textStatsPacketsIn) + ldi zh, HIGH(textStatsPacketsIn) + rcall LCD_PrintFromFlash + lds r18, comStatsPacketsIn + lds r19, comStatsPacketsIn+1 + rcall LCD_PrintHexWord + + ldi r18, 0 + ldi r19, 3 + rcall LCD_SetCursor + ldi zl, LOW(textStatsPacketsRecvErr) + ldi zh, HIGH(textStatsPacketsRecvErr) + rcall LCD_PrintFromFlash + lds r18, comStatsRecvErrs + lds r19, comStatsRecvErrs+1 + rcall LCD_PrintHexWord + + + ldi r18, 0 + ldi r19, 5 + rcall LCD_SetCursor + ldi zl, LOW(textStatsPacketsOut) + ldi zh, HIGH(textStatsPacketsOut) + rcall LCD_PrintFromFlash + lds r18, comStatsPacketsOut + lds r19, comStatsPacketsOut+1 + rcall LCD_PrintHexWord + + ldi r18, 0 + ldi r19, 6 + rcall LCD_SetCursor + ldi zl, LOW(textStatsCollisions) + ldi zh, HIGH(textStatsCollisions) + rcall LCD_PrintFromFlash + lds r18, comStatsCollisions + lds r19, comStatsCollisions+1 + rcall LCD_PrintHexWord + + ldi r18, 0 + ldi r19, 7 + rcall LCD_SetCursor + ldi zl, LOW(textStatsAborted) + ldi zh, HIGH(textStatsAborted) + rcall LCD_PrintFromFlash + lds r18, comStatsAborted + lds r19, comStatsAborted+1 + rcall LCD_PrintHexWord + pop r15 + out SREG, r15 ret