ARM 按键控制LED灯+IO控制buzzer蜂鸣器

来源:互联网 发布:学术数据库有哪些 编辑:程序博客网 时间:2024/05/01 20:55


按键控制LED灯

GPIO_MemMapPtr const PORT_BASE_PTR[] = {GPIOA_BASE_PTR,GPIOB_BASE_PTR};void GPIO_WriteBit(GPIO_TypeDef port,int pin,BIT_TypeDef bit){    if(bit == BIT_RESET){    PORT_BASE_PTR[port]->GPDAT &= ~(pin);}else{    PORT_BASE_PTR[port]->GPDAT |= (pin);}}


#include "s3c2451_key.h"#include "s3c2451_gpio.h"void KEY_Init(){//GPF[6:0]  GPFCON &= (~(3<<(2*1))) & (~(3<<(2*2))) & (~(3<<(2*3))) &(~(3<<(2*4)));}void key_ctr_led(){while(1){//key1if(!(GPFDAT&0x01)){GPIO_WriteBit(GPIOB,GPIO_PIN5,BIT_RESET);}else{GPIO_WriteBit(GPIOB,GPIO_PIN5,BIT_SET);}//key2if(!(GPFDAT&0x02)){GPIO_WriteBit(GPIOB,GPIO_PIN6,BIT_RESET);}else{GPIO_WriteBit(GPIOB,GPIO_PIN6,BIT_SET);}//key3if(!(GPFDAT&0x04)){GPIO_WriteBit(GPIOA,GPIO_PIN25,BIT_RESET);}else{GPIO_WriteBit(GPIOA,GPIO_PIN25,BIT_SET);}//key4if(!(GPFDAT&0x08)){GPIO_WriteBit(GPIOA,GPIO_PIN26,BIT_RESET);}else{GPIO_WriteBit(GPIOA,GPIO_PIN26,BIT_SET);}  }}
IO控制buzzer蜂鸣器

#ifndef S3C2451_BUZZER_H_#define S3C2451_BUZZER_H_#include "typedef.h"#define GPBCON (*(volatile unsigned *)0x56000010)#define GPBDAT (*(volatile unsigned *)0x56000014)#define GPBUP  (*(volatile unsigned *)0x56000018)typedef enum{    BUR_RESET = 0,  BUR_SET = 1}BUZZER_TypeDef;extern void buzzer_on_off(BUZZER_TypeDef bur);#endif#include "s3c2451_buzzer.h"void buzzer_on_off(BUZZER_TypeDef bur){    if(bur == BUR_SET){GPBDAT |= 0x01;}    else if(bur == BUR_RESET)    {GPBDAT &= 0x0;}}#include "main.h"#include "s3c2451_key.h"#include "s3c2451_buzzer.h"void delay(volatile int count){while (count--);}void Main(void){while(1){buzzer_on_off(BUR_RESET);delay(2000000);buzzer_on_off(BUR_SET);delay(2000000);}}


0 0
原创粉丝点击