SDCC 学习
单个led.c文件
#include <stdbool.h>
__sfr __at(0xb0) P3;
__sfr __at(0x88) TCON;
__sfr __at(0x89) TMOD;
__sfr __at(0x8a) TL0;
__sfr __at(0x8c) TH0;
__sfr __at(0xa8) IE;
volatile unsigned long int clocktime;
volatile _Bool clockupdate;
void clockinc(void) __interrupt(1)
{
TH0 = (65536 - 922) / 256;
TL0 = (65536 - 922) % 256;
clocktime++;
clockupdate = true;
}
unsigned long int clock(void)
{
unsigned long int ctmp;
do
{
clockupdate = false;
ctmp = clocktime;
} while (clockupdate);
return(ctmp);
}
void main(void)
{
// Configure timer for 11.0592 Mhz default SYSCLK
// 1000 ticks per second
TH0 = (65536 - 922) / 256;
TL0 = (65536 - 922) % 256;
TMOD = 0x01;
IE |= 0x82;
TCON |= 0x10; // Start timer
for(;;)
P3 = ~(clock() / 1000) & 0x03;
}
编译:
sdcc-sdcc led.c
生成的文件
led.asm led.c led.ihx led.lk led.lst led.map led.mem led.rel led.rst led.sym
生成的led.ihx转位led.hex
sdcc-packihx led.ihx > led.hex

浙公网安备 33010602011771号