Sunday, January 11, 2015

Stm8 - Input


Để giao tiếp với nút nhấn, chúng ta sử dụng hàm:
GPIO_ReadInputPin(GPIOx, GPIO_PIN_x);
Trong đó GPIOx là port cần đọc tín hiệu( A, B, C, D), GPIO_PIN_x là chân có số thứ tự x của port tương ứng.
 Sau đây là chương trình mẫu




#include"STM8S_conf.h"
#include"stdio.h"
//***** Dinh nghia co cac chan*****//
#define data    (GPIOD)
#define sw      (GPIO_PIN_3)
//*****Khai bao bien*****//
unsigned int data_sw;
//*****Ham tao thoi gian tre*****//
void delay(unsigned int timer)
{
  while(timer--);
}
//*****Ham doc nut nhan******//
void Read_sw(void)
{
  data_sw = GPIO_ReadInputPin(GPIOC,sw);
  if(data_sw==0)
  {
    delay(60000);
    if(data_sw==0)
    {
      GPIO_WriteLow(GPIOD,GPIO_PIN_4);
    }
  }
  else
    GPIO_WriteHigh(GPIOD,GPIO_PIN_4);
}
void clk_config(void)
{
  CLK_DeInit();
  CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//cau hinh tan so xung noi HSI/1=16MHZ
  CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1);// xung cpu=HSI/1=16MHZ
  while(CLK_GetFlagStatus(CLK_FLAG_HSIRDY)!=SET);
}
void main(void)
{
  clk_config();
  GPIO_DeInit(GPIOD);
  GPIO_Init(GPIOD,GPIO_PIN_ALL,GPIO_MODE_OUT_PP_HIGH_FAST);
  GPIO_DeInit(GPIOC);
  GPIO_Init(GPIOC,GPIO_PIN_3,GPIO_MODE_IN_FL_NO_IT);
  while(1)
  {
    Read_sw();
  }
}

2 comments:

inmoov finger voice test

Inmoov finger voice test