官方例子里面还给出了这样的说法
#define SYSCLK 24500000/8 // SYSCLK in Hz (24.5 MHz internal
#define TIMER_PRESCALER 48 // Based on Timer CKCON settings
#define LED_TOGGLE_RATE 50 // LED toggle rate in milliseconds
#define TIMER_TICKS_PER_MS SYSCLK/TIMER_PRESCALER/1000
#define AUX1 TIMER_TICKS_PER_MS*LED_TOGGLE_RATE
#define AUX2 -AUX1
#define AUX3 AUX2&0x00FF
#define AUX4 ((AUX2&0xFF00)>>8)
#define TIMER0_RELOAD_HIGH AUX4 // Reload value for Timer0 high byte#define TIMER0_RELOAD_LOW AUX3 // Reload value for Timer0 low byte
其中
SYSCLK/TIMER_PRESCALER/1000
#define AUX1 TIMER_TICKS_PER_MS*LED_TOGGLE_RATE
#define AUX2 -AUX1
这三行是没看懂 尤其是第一行那个败诉不得其解 第二行 第三行可能需要算把 求高人
你说的对
但是我还有个问题,比如定时器使用系统时钟的48分频,那么是不是要设置定时器的相关寄存器为48分频,这样才能对应呢
上面不是说过了吗,48分频在CKCON寄存器中设置,相关的可能还要设置TMOD等寄存器,具体要看你的应用了。这段程序不是在C8051F全系列中都能用,因为不同芯片寄存器可能不一样,这个程序应该可以在c8051f3xx中可以用。最简单的办法你可以把这段例程中用到的寄存器在datasheet中全部查一次,看一下具体功能。