久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 單片機口袋實驗板中斷控制程序 [打印本頁]

作者: 51黑1    時間: 2018-4-11 21:40
標題: 單片機口袋實驗板中斷控制程序
//*****************************************************************************
// 本程序控制口袋實驗板上的3個LED指示燈,移位閃爍點亮,K2、K3、K4為中斷按鍵,分別控制紅燈、藍燈、綠燈的翻轉
// 藍色LED(D2)--PF0 綠色LED(D3)-PA4 紅色LED(D4)-PD6
//*****************************************************************************
#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"//一些位帶操作的宏定義
#include "inc/hw_gpio.h"// hw_gpio.h - Defines and Macros for GPIO hardware.
#include "driverlib/sysctl.h"//系統時鐘
#include "driverlib/gpio.h"//gpio 定義
#include "driverlib/gpio.c"//gpio 定義
#include "driverlib/interrupt.c"//gpio 定義
#include "driverlib/interrupt.h"
#include <math.h>
#include "inc/hw_ints.h"
#include "inc/hw_nvic.h"


void GPIO_PORTA_ISR(void)//中斷處理子函數
{
    unsigned char ucVal;
    unsigned long ulStatus;//中斷狀態標識
        
    ulStatus = GPIOIntStatus(GPIO_PORTA_BASE, true); // 讀取中斷狀態
    GPIOIntClear(GPIO_PORTA_BASE, ulStatus); // 清除中斷狀態,重要
        
    switch (ulStatus ) // 如果KEY的中斷狀態有效
    {
             case 0x04:
                      ucVal = GPIOPinRead(GPIO_PORTF_BASE, GPIO_PIN_0); // 翻轉LED(藍)
          GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0, ~ucVal);
          SysCtlDelay(10000000); // 延時約10ms,消除按鍵抖動
          while (GPIOPinRead(GPIO_PORTA_BASE, GPIO_PIN_2) == 0x00); // 等待KEY抬起
          SysCtlDelay(10000000); // 延時約10ms,消除松鍵抖動
                            break;
                         case 0x08:
                                 ucVal = GPIOPinRead(GPIO_PORTA_BASE, GPIO_PIN_4); // 翻轉LED(綠)
          GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_4, ~ucVal);
          SysCtlDelay(10000000); // 延時約10ms,消除按鍵抖動
          while (GPIOPinRead(GPIO_PORTA_BASE, GPIO_PIN_3) == 0x00); // 等待KEY抬起
          SysCtlDelay(10000000); // 延時約10ms,消除松鍵抖動
                         break;

                        
                                 
    }
}



void GPIO_PORTF_ISR(void)//中斷處理子函數
{
    unsigned char ucVal;
    unsigned long ulStatus;//中斷狀態標識
        
    ulStatus = GPIOIntStatus(GPIO_PORTF_BASE, true); // 讀取中斷狀態
    GPIOIntClear(GPIO_PORTF_BASE, ulStatus); // 清除中斷狀態,重要
        
    switch (ulStatus ) // 如果KEY的中斷狀態有效
    {
             case 0x10:
                      ucVal = GPIOPinRead(GPIO_PORTD_BASE, GPIO_PIN_6); // 翻轉LED(紅)
          GPIOPinWrite(GPIO_PORTD_BASE,GPIO_PIN_6, ~ucVal);
          SysCtlDelay(10000000); // 延時約10ms,消除按鍵抖動
          while (GPIOPinRead(GPIO_PORTF_BASE, GPIO_PIN_4) == 0x00); // 等待KEY抬起
          SysCtlDelay(10000000); // 延時約10ms,消除松鍵抖動
                            break;
                        
                                 
    }
}


//*****************************************************************************
// main 函數,每個工程項目內有且只有1個
//*****************************************************************************
int main(void)
{


        //設置系統時鐘為50MHz
    SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |
                       SYSCTL_XTAL_16MHZ);
    // 端口GPIO F使能
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);          // 使能 GPIO F模塊
          HWREG(GPIO_PORTF_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY; // 開鎖 PORT F
    HWREG(GPIO_PORTF_BASE + GPIO_O_CR) |= GPIO_PIN_0;     // 解鎖 F0 引腳
    HWREG(GPIO_PORTF_BASE + GPIO_O_LOCK) = 0;             // 重新上鎖
        
        
          SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);   //使能GPIO A模塊
          SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);  //使能GPIO D模塊
    GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_0); // PF0設置為輸出
          GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, GPIO_PIN_4); // PA4設置為輸出
          GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE, GPIO_PIN_6); // PD6設置為輸出
        
        
        //初始化三個燈的狀態
         GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,1<<0);//藍燈滅
        SysCtlDelay(10000000);
          GPIOPinWrite(GPIO_PORTD_BASE,GPIO_PIN_4,1<<4);//綠燈滅
                SysCtlDelay(10000000);
          GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_6,1<<6);//紅燈滅
                SysCtlDelay(10000000);

        
          GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,0<<0);//藍燈亮
          SysCtlDelay(10000000);
    GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,1<<0);  // 藍燈滅
    SysCtlDelay(10000000);
                GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_4,0<<4); //綠燈亮
          SysCtlDelay(10000000);
    GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_4,1<<4);  // 口袋板綠燈滅
    SysCtlDelay(10000000);
          GPIOPinWrite(GPIO_PORTD_BASE,GPIO_PIN_6,0<<6);  //口袋板紅燈亮
          SysCtlDelay(10000000);
    GPIOPinWrite(GPIO_PORTD_BASE,GPIO_PIN_6,1<<6);  //口袋板紅燈滅
               
               
               
               
               
          //中斷初始化
          GPIOPinTypeGPIOInput(GPIO_PORTA_BASE, GPIO_PIN_2); // PA2(K4)設置為輸入
                GPIOPinTypeGPIOInput(GPIO_PORTA_BASE, GPIO_PIN_3); // PA3(K3)設置為輸入
                GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_4); // PF4(K2)設置為輸入
          GPIOIntTypeSet(GPIO_PORTA_BASE, GPIO_PIN_2, GPIO_LOW_LEVEL);//設置GPIOPA2中斷
                GPIOIntTypeSet(GPIO_PORTA_BASE, GPIO_PIN_3, GPIO_LOW_LEVEL);//設置GPIOPA3中斷
                GPIOIntTypeSet(GPIO_PORTF_BASE, GPIO_PIN_4, GPIO_LOW_LEVEL);//設置GPIOPF4中斷
                GPIOIntEnable(GPIO_PORTA_BASE, GPIO_PIN_2); // 使能KEY所在管腳的中斷
    GPIOIntEnable(GPIO_PORTA_BASE, GPIO_PIN_3);
                GPIOIntEnable(GPIO_PORTF_BASE, GPIO_PIN_4);
          IntEnable(INT_GPIOA);// 使能GPIOF端口總中斷
                IntEnable(INT_GPIOF);
          IntMasterEnable(); // 使能處理器總中斷
           
    while(1)    // 等待按鍵中斷
    {
        }
}
// end of main







歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日本黄色大片免费看 | 日本一区二区三区四区 | 九热在线 | 精品中文视频 | 天天躁日日躁狠狠的躁天龙影院 | 日韩精品久久久久 | 亚洲视频在线一区 | 欧美日韩亚洲系列 | 国产日韩视频在线 | 国产精品伦一区二区三级视频 | a网站在线观看 | 国产一区二区精品在线 | 午夜a√| 国产精品久久久久久一区二区三区 | 手机av网 | 午夜在线观看视频 | 精品一区二区在线观看 | 欧美一区二区三区在线观看 | 欧美精品三区 | 久久久久久91香蕉国产 | 日韩在线播放网址 | 久久久久网站 | 久久噜噜噜精品国产亚洲综合 | 特黄特色大片免费视频观看 | 在线播放中文字幕 | 一区二区三区四区视频 | 精品欧美乱码久久久久久 | 成人二区| 一级黄色淫片 | 国产精品久久久久久一区二区三区 | 久久成人一区 | 免费一区二区 | 久草在线| 日本在线免费视频 | 亚洲欧美在线观看视频 | 福利片在线观看 | 中文字幕精品一区 | 亚洲精品在线免费看 | 中文字幕成人网 | 日韩av在线一区 | 少妇无套高潮一二三区 |