STM8s-DiscoveryのLED ONOFF Programがようやっと出来た。いろいろ失敗が有った。
Cosmic Cが記述量が少なく、理解し易かった。
次StepとしてLCD SC1602Bを接続する。
//*******************************************
//Project: test1T
//Function: WaitTime Variable
//Target: STM8s-Discovery:
//Launguage: Cosmic C
//Date: 2012.1.30
//*******************************************
//#include "iostm8.h"
//PortB
volatile char PBDR @0x5005;/* Port D Data Output Latch Register */
volatile char PBPR @0x5006;/* Port D input pin value Register */
volatile char PBDDR @0x5007;/* Port D Data Direction */
volatile char PBOR @0x5008;/* Port D Option register */
volatile char PBCR @0x5009;/* Port D Configuration Register */
//PortC
//volatile char PCDR @0x500A;/* Port D Data Output Latch Register */
//volatile char PCPR @0x500B;/* Port D input pin value Register */
//volatile char PCDDR @0x500C;/* Port D Data Direction */
//volatile char PCOR @0x500D;/* Port D Option register */
//volatile char PCCR @0x500E;/* Port D Configuration Register */
//PortD
volatile char PDDR @0x500f;/* Port D Data Output Latch Register */
volatile char PDPR @0x5010;/* Port D input pin value Register */
volatile char PDDDR @0x5011;/* Port D Data Direction */
volatile char PDOR @0x5012;/* Port D Option register */
volatile char PDCR @0x5013;/* Port D Configuration Register */
unsigned int u,m,s, x,y,z;
void wait_5us(void)
{
_asm("NOP"); // 1us? 2us?
}
void wait_us(int x)// x/5 50--10, 100--20, 1000--200
{
for(u=0; u
{
_asm("NOP");
}
}
void wait_ms(int y)// 1--1, 10--10, 16--16, 100--100
{
for(m=0; m
{
wait_us(200); //1ms
}
}
void wait_500ms(void)
{
for(m=0; m<500; m++)
{
wait_us(200);// 5x200x500us
}
}
//*****************************************
void main(void)
{
PBDDR = 0b00000101; //PortB Directin Output
//PDDDR = 0b00000101;
while(1){
PBDR = 0b00000101; //PortB 0xff
//PDDR = 0b00000101;
//wait_5us(); //5us
//wait_us(200); //1ms
//wait_ms(100); //100ms
wait_ms(500); // 500ms
PBDR = 0b00000000; //PortB 0x00
//PDDR = 0b00000000;
//wait_5us(); //5us
//wait_us(200); //1ms
//wait_ms(100); //100ms
wait_ms(500); // 500ms
}
}