From f5eb532f23954085eafd82d8d6e93fdaa1de9256 Mon Sep 17 00:00:00 2001 From: 7u83 <7u83@mail.ru> Date: Sat, 18 May 2024 14:44:16 +0200 Subject: [PATCH] Puts out a counter now --- flash.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/flash.c b/flash.c index abcec06..4d9aafb 100644 --- a/flash.c +++ b/flash.c @@ -2,16 +2,21 @@ #include <8052.h> #ifndef FLASH_PIN -#define FLASH_PIN _P1_0 +#define FLASH_PIN _P2_0 #endif #ifndef IRQFREQ #define IRQFREQ 1000L #endif +#ifndef T0_BITS +#define T0_BITS 13 +#endif + + #define FOSC (SYSCLK*1000L) -#define T0_1MS (65536L-FOSC/12L/IRQFREQ) +#define T0_1MS ((65536)-FOSC/12L/IRQFREQ) #define TCT IRQFREQ/2-1 @@ -19,9 +24,13 @@ unsigned char ctr_l = TCT&0xFF; unsigned char ctr_h = (TCT>>8)&0xff; unsigned char ctr_w = (TCT>>16)&0xff; +unsigned char counter = 0; + void handler() __interrupt 1 { EA=0; + TL0 = (T0_1MS) & 0xFF; // Initial timer value + TH0 = T0_1MS>>8; // Initial timer value __asm mov a, #0xff dec _ctr_l @@ -31,8 +40,11 @@ void handler() __interrupt 1 dec _ctr_w cjne a,_ctr_w, 00001$ - cpl FLASH_PIN + ; cpl FLASH_PIN __endasm; + + counter ++; + P2 = counter ^0xff; ctr_l = TCT&0xFF; ctr_h = (TCT>>8)&0xff; @@ -47,12 +59,11 @@ void handler() __interrupt 1 void main() { - P1=TMOD; EA=0; - TMOD =0; + TMOD =1; P1=TMOD; TL0 = (T0_1MS) & 0xFF; // Initial timer value