ATY_LIB V2_102_230218
ATY_LIB for general devices or ALGO
 
Loading...
Searching...
No Matches
fw_sys.c File Reference
#include "fw_sys.h"

Go to the source code of this file.

Functions

void SYS_SetClock (void)
 
void SYS_TrimClock (uint8_t vrtrim, uint8_t irtrim)
 
void SYS_Delay (uint16_t t)
 
void SYS_DelayUs (uint16_t t)
 

Variables

__CODE uint16_t ticks_ms = (__CONF_FOSC / ((__CONF_CLKDIV == 0)? 1 : __CONF_CLKDIV) / __CLK_REF)
 
__CODE uint8_t ticks_us = (__CONF_FOSC / ((__CONF_CLKDIV == 0)? 1 : __CONF_CLKDIV) / __CLK_REF / 1000)
 

Function Documentation

◆ SYS_Delay()

void SYS_Delay ( uint16_t  t)

Definition at line 65 of file fw_sys.c.

66{
67 uint16_t i;
68 do
69 {
70 i = ticks_ms;
71 while (--i);
72 } while (--t);
73}
__CODE uint16_t ticks_ms
Definition: fw_sys.c:30
unsigned short uint16_t
Definition: fw_types.h:19
uint8_t __XDATA i

◆ SYS_DelayUs()

void SYS_DelayUs ( uint16_t  t)

Definition at line 75 of file fw_sys.c.

76{
77 uint8_t i;
78 do
79 {
80 i = ticks_us;
81 while (--i);
82 } while (--t);
83}
__CODE uint8_t ticks_us
Definition: fw_sys.c:31
unsigned char uint8_t
Definition: fw_types.h:18

◆ SYS_SetClock()

void SYS_SetClock ( void  )

Change system clock

  • For SDCC only.
  • For Keil C51, trim IRC in STC-ISP will be more accurate
  • Invoke this in the beginning of main()

Definition at line 40 of file fw_sys.c.

41{
42#if defined (SDCC) || defined (__SDCC)
43 uint16_t i = 0; uint8_t j = 5;
44 P_SW2 = 0x80;
45 if (CLKDIV != (__CONF_CLKDIV))
46 {
48 do { // Wait a while after clock changed, or it may block the main process
49 while (--i);
50 } while (--j);
51 }
52 P_SW2 = 0x00;
54 while (--i); // Wait
55#endif
56}
#define __CONF_IRCBAND
Definition: fw_conf.h:82
#define __CONF_LIRTRIM
Definition: fw_conf.h:94
#define __CONF_CLKDIV
Definition: fw_conf.h:78
#define __CONF_VRTRIM
Definition: fw_conf.h:86
#define __CONF_IRTRIM
Definition: fw_conf.h:90
#define CLKDIV
#define SYS_SetFOSC(__IRCBAND__, __VRTRIM__, __IRTRIM__, __LIRTRIM__)
Definition: fw_sys.h:47

◆ SYS_TrimClock()

void SYS_TrimClock ( uint8_t  vrtrim,
uint8_t  irtrim 
)

Definition at line 58 of file fw_sys.c.

59{
60 uint16_t i = 0;
62 while (--i); // Wait
63}

Variable Documentation

◆ ticks_ms

__CODE uint16_t ticks_ms = (__CONF_FOSC / ((__CONF_CLKDIV == 0)? 1 : __CONF_CLKDIV) / __CLK_REF)

An approximate estimate of instruction cycles in one second, may vary in different compilers even differnt versions, adjust it if you find the delay too slow or fast.

Definition at line 30 of file fw_sys.c.

◆ ticks_us

__CODE uint8_t ticks_us = (__CONF_FOSC / ((__CONF_CLKDIV == 0)? 1 : __CONF_CLKDIV) / __CLK_REF / 1000)

Definition at line 31 of file fw_sys.c.