//****************************************************************************************** // Project : STM8S105C6T6 Sample Program // Program Name : // Programer : // Create date : Version 1.0 H24.09.30 // History : // Laungage : STM8Cosmic C Launguage //****************************************************************************************** // Description // //****************************************************************************************** //#include "iostm8.h" volatile char PB_ODR @0x5005; /* Port B output data register */ volatile char PB_IDR @0x5006; /* Port B pin input register */ volatile char PB_DDR @0x5007; /* Port B data direction register */ volatile char PB_CR1 @0x5008; /* Port B control register 1 */ volatile char PB_CR2 @0x5009; /* Port B control register 2 */ volatile char PD_ODR @0x500f; /* Port D output data register */ volatile char PD_IDR @0x5010; /* Port D pin input register */ volatile char PD_DDR @0x5011; /* Port D data direction register */ volatile char PD_CR1 @0x5012; /* Port D control register 1 */ volatile char PD_CR2 @0x5013; /* Port D control register 2 */ void wat(void); int main(void) { unsigned char LEDlst=0; unsigned int lp; // ******************** // 1.Initialized // ******************** // (1)Define I/O PORT PB_DDR = 0b11111111; //Direction PB_CR1 = 0b11111111; //0:Open drain, 1:Push-pull PB_CR2 = 0b11111111; //0:Output speed up to 2 MHz, 1: Output speed up to 10 MHz // ******************** // 2.Main // ******************** LEDlst = 1; while(1){ if(LEDlst == 1){ LEDlst = 2; }else if(LEDlst > 127){ LEDlst = 1; }else{ LEDlst = LEDlst * 2; } PB_ODR = LEDlst; wat(); } } //****************************************************************************************** // Function Name : wat // Title : wait function // Input : // Output : // Description : //****************************************************************************************** void wat(void) { unsigned int lp,lp1; for(lp=0;lp<100;lp++) for(lp1=0;lp1<1000;lp1++){}; }