v1.7.61 (LED matrix support)
This commit is contained in:
		
							parent
							
								
									c0a767e833
								
							
						
					
					
						commit
						19849c4eea
					
				@ -1,15 +1,15 @@
 | 
			
		||||
#ifndef _IRQHANDLER_H
 | 
			
		||||
#define _IRQHANDLER_H
 | 
			
		||||
 | 
			
		||||
#define DISPLAY_IRQ 0x01
 | 
			
		||||
#define BUTTON_IRQ 0x02
 | 
			
		||||
#define MATRIX_DISPLAY_IRQ 0x03
 | 
			
		||||
#define SENDCYCLE_IRQ 0x04
 | 
			
		||||
#define CYCLIC_IRQ 0x08
 | 
			
		||||
#define TIMESYNC_IRQ 0x10
 | 
			
		||||
#define MASK_IRQ 0x20
 | 
			
		||||
#define UNMASK_IRQ 0x40
 | 
			
		||||
#define GPS_IRQ 0x80
 | 
			
		||||
#define DISPLAY_IRQ 0x001
 | 
			
		||||
#define BUTTON_IRQ 0x002
 | 
			
		||||
#define SENDCYCLE_IRQ 0x004
 | 
			
		||||
#define CYCLIC_IRQ 0x008
 | 
			
		||||
#define TIMESYNC_IRQ 0x010
 | 
			
		||||
#define MASK_IRQ 0x020
 | 
			
		||||
#define UNMASK_IRQ 0x040
 | 
			
		||||
#define GPS_IRQ 0x080
 | 
			
		||||
#define MATRIX_DISPLAY_IRQ 0x100
 | 
			
		||||
 | 
			
		||||
#include "globals.h"
 | 
			
		||||
#include "cyclic.h"
 | 
			
		||||
 | 
			
		||||
@ -4,8 +4,6 @@
 | 
			
		||||
#include "LEDMatrix.h"
 | 
			
		||||
#include "ledmatrixfonts.h"
 | 
			
		||||
 | 
			
		||||
extern uint8_t MatrixDisplayIsOn;
 | 
			
		||||
 | 
			
		||||
extern LEDMatrix matrix;
 | 
			
		||||
 | 
			
		||||
void init_matrix_display(const char *Productname, const char *Version);
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@
 | 
			
		||||
 | 
			
		||||
; ---> SELECT TARGET PLATFORM HERE! <---
 | 
			
		||||
[platformio]
 | 
			
		||||
env_default = generic
 | 
			
		||||
;env_default = generic
 | 
			
		||||
;env_default = ebox
 | 
			
		||||
;env_default = eboxtube
 | 
			
		||||
;env_default = ecopower
 | 
			
		||||
@ -24,7 +24,7 @@ env_default = generic
 | 
			
		||||
;env_default = lolin32litelora
 | 
			
		||||
;env_default = lolin32lora
 | 
			
		||||
;env_default = lolin32lite
 | 
			
		||||
;env_default = wemos32oled
 | 
			
		||||
env_default = wemos32oled
 | 
			
		||||
;env_default = octopus32
 | 
			
		||||
;env_default = ecopower, eboxtube, heltec, ttgobeam, lopy4, lopy, ttgov21old, ttgov21new, ttgofox
 | 
			
		||||
;
 | 
			
		||||
@ -32,7 +32,7 @@ description = Paxcounter is a proof-of-concept ESP32 device for metering passeng
 | 
			
		||||
 | 
			
		||||
[common]
 | 
			
		||||
; for release_version use max. 10 chars total, use any decimal format like "a.b.c"
 | 
			
		||||
release_version = 1.7.6
 | 
			
		||||
release_version = 1.7.61
 | 
			
		||||
; DEBUG LEVEL: For production run set to 0, otherwise device will leak RAM while running!
 | 
			
		||||
; 0=None, 1=Error, 2=Warn, 3=Info, 4=Debug, 5=Verbose
 | 
			
		||||
debug_level = 3
 | 
			
		||||
@ -70,7 +70,6 @@ lib_deps_all =
 | 
			
		||||
    ${common.lib_deps_display}
 | 
			
		||||
    ${common.lib_deps_rgbled}
 | 
			
		||||
    ${common.lib_deps_gps}
 | 
			
		||||
    ${common.lib_deps_matrix_display}
 | 
			
		||||
build_flags_basic =
 | 
			
		||||
    -include "src/hal/${PIOENV}.h"
 | 
			
		||||
    -include "src/paxcounter.conf"
 | 
			
		||||
@ -371,6 +370,7 @@ upload_speed = 921600
 | 
			
		||||
lib_deps =
 | 
			
		||||
    ${common.lib_deps_basic}
 | 
			
		||||
    ${common.lib_deps_display}
 | 
			
		||||
    ${common.lib_deps_matrix_display}
 | 
			
		||||
build_flags =
 | 
			
		||||
    ${common.build_flags_all}
 | 
			
		||||
upload_protocol = ${common.upload_protocol}
 | 
			
		||||
 | 
			
		||||
@ -8,7 +8,7 @@
 | 
			
		||||
static const char TAG[] = __FILE__;
 | 
			
		||||
 | 
			
		||||
uint8_t MatrixDisplayIsOn = 0;
 | 
			
		||||
unsigned long ulLastNumMacs = 0;
 | 
			
		||||
static unsigned long ulLastNumMacs = 0;
 | 
			
		||||
 | 
			
		||||
LEDMatrix matrix(LED_MATRIX_LA_74138, LED_MATRIX_LB_74138, LED_MATRIX_LC_74138,
 | 
			
		||||
                 LED_MATRIX_LD_74138, LED_MATRIX_EN_74138, LED_MATRIX_DATA_R1,
 | 
			
		||||
@ -31,6 +31,15 @@ void init_matrix_display(const char *Productname, const char *Version) {
 | 
			
		||||
 | 
			
		||||
void refreshTheMatrixDisplay() {
 | 
			
		||||
 | 
			
		||||
  // if Matrixdisplay is switched off we don't refresh it to relax cpu
 | 
			
		||||
  if (!MatrixDisplayIsOn && (MatrixDisplayIsOn == cfg.screenon))
 | 
			
		||||
    return;
 | 
			
		||||
 | 
			
		||||
  // set display on/off according to current device configuration
 | 
			
		||||
  if (MatrixDisplayIsOn != cfg.screenon) {
 | 
			
		||||
    MatrixDisplayIsOn = cfg.screenon;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (ulLastNumMacs != macs.size()) {
 | 
			
		||||
    ulLastNumMacs = macs.size();
 | 
			
		||||
    matrix.clear();
 | 
			
		||||
 | 
			
		||||
@ -52,7 +52,7 @@ So don't do it if you do not own a digital oscilloscope.
 | 
			
		||||
0	displayIRQ -> display refresh -> 40ms (DISPLAYREFRESH_MS)
 | 
			
		||||
1 ppsIRQ -> pps clock irq -> 1sec
 | 
			
		||||
2	gpsIRQ -> gps store data -> 300ms
 | 
			
		||||
3	unused
 | 
			
		||||
3	MatrixDisplayIRQ -> matrix mux cycle -> 0,5ms (MATRIX_DISPLAY_SCAN_US)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Interrupt routines
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user