新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > NEC V850 之 通用輸入輸出I/O口

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

作者: 時間:2016-12-03 來源:網(wǎng)絡(luò) 收藏
編譯環(huán)境:IAR For V850 3.81 + MiniCube2

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

本文引用地址:http://m.butianyuan.cn/article/201612/325097.htm


硬件資源:

LED端口:P94 P10

KEY端口:P04


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

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

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

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

下面是代碼:

來自GPIO.c

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



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

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

來自 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 ; // 關(guān)閉看門狗定時器,進(jìn)入系統(tǒng)先關(guān)看門狗定時器,防止系統(tǒng)進(jìn)入異常

GPIO_PortInit();

LED1 = 0 ;
LED2 = 1 ;

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



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

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

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


關(guān)鍵詞: NECV850輸入輸

評論


技術(shù)專區(qū)

關(guān)閉