新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > NEC V850 之 通用輸入輸出I/O口

        NEC V850 之 通用輸入輸出I/O口

        作者: 時間:2016-12-03 來源:網絡 收藏
        編譯環境:IAR For V850 3.81 + MiniCube2

        硬件平臺:NEC V850ES/FG3 D70F3630 (D70F3377A)

        本文引用地址:http://www.104case.com/article/201612/325097.htm


        硬件資源:

        LED端口:P94 P10

        KEY端口:P04


        在使用V850的管腳做為輸入輸出I/O口的時候有下面幾個步驟:

        第一步:設置端口模式寄存器(PMCn);

        第二步:設置端口方向寄存器(PMn);

        第三步:對端口寄存器賦值或者對端口寄存器查詢獲得輸入值(Pn)。

        下面是代碼:

        來自GPIO.c

        void GPIO_PortInit(void)
        {
        PMC9L_bit.no4 = 0 ; // 設置端口為輸入輸出口模式
        PM9L_bit.no4 = 0 ; // 設置端口為輸出



        PMC1_bit.no0 = 0 ; // 設置端口為輸入輸出口模式
        PM1_bit.no0 = 0 ; // 設置端口為輸出

        PMC0_bit.no4 = 0 ; // 設置端口為輸入輸出口模式
        PM0_bit.no4 = 1 ; // 設置端口為輸入
        }

        來自 GPIO.h

        #ifndef GPIO
        #define GPIO 1

        /* Includes ------------------------------------------------------------------*/
        #include
        #include

        /* Exported types ------------------------------------------------------------*/
        /* Exported constants --------------------------------------------------------*/
        /* Exported Global variables -------------------------------------------------*/
        /* Exported macro ------------------------------------------------------------*/
        #define LED1 (P1_bit.no0)
        #define LED2 (P9L_bit.no4)

        #define KEY1 (P0_bit.no4)
        /* Exported functions ------------------------------------------------------- */
        void GPIO_PortInit(void);

        #endif /* __GPIO_H */

        來自main.c

        void main(void)
        {
        WDTM2 = 0x1F ; // 關閉看門狗定時器,進入系統先關看門狗定時器,防止系統進入異常

        GPIO_PortInit();

        LED1 = 0 ;
        LED2 = 1 ;

        while(1)
        {
        if(KEY1 == 0)
        {
        LED1 = ~LED1;
        LED2 = ~LED2;
        }
        }
        }



        代碼部分顯而易見,我就不再贅述。

        這里的工程模式還是采用了以前的方式,用一個大的工程里面包括的system文件夾和BSP文件夾。然后用main.h頭文件去包含所有的BSP的子頭文件。本工程取名Dream,新的平臺新的夢想。下面上圖:

        還有需要注意到的是,如果要更換芯片的類型,要在main.h頭文件里進行更改包含文件,并且修改option里的芯片型號。因為工程需要調用不同文件夾里的頭文件,所以要在option里設置包含路徑,在IAR里比在MDK里麻煩一些,如果移動工程需要更改,設置位置見下圖:


        關鍵詞: NECV850輸入輸

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 河北区| 平远县| 华亭县| 团风县| 昆山市| 镇坪县| 木兰县| 稻城县| 朝阳区| 武定县| 灵武市| 鱼台县| 拜城县| 叶城县| 元江| 屯门区| 抚松县| 松阳县| 永修县| 闽侯县| 蓬莱市| 南靖县| 花垣县| 锡林郭勒盟| 鹤岗市| 芜湖县| 错那县| 嘉荫县| 涞源县| 元谋县| 卫辉市| 阜康市| 郓城县| 孟连| 新沂市| 兴安县| 蚌埠市| 东兰县| 华池县| 包头市| 含山县|