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

標題: Keil編譯顯示打不開頭文件,出現 before 'jump... [打印本頁]

作者: 流浪先生    時間: 2019-6-30 13:43
標題: Keil編譯顯示打不開頭文件,出現 before 'jump...
# include "bsp.h"
# define S        5.0f
uint8_t JumpTime = 0;                /* 外部中斷0邊沿跳變次數統計 */
uint8_t MeasureOK = 0;        /* 測量完成標志 */
uint32_t Time = 0;                        /* 用于計算兩次邊沿跳變的時間 */
uint8_t str[20] = {0};        /* LCD顯示緩存區 */


sbit key = P3^2;                                /* 外部中斷引腳 */

int main(void)
{
        bsp_Config();                /* 板級外設初始化 */
        
        EX0 = 1;                /* 開啟外部中斷0 */
        
        bsp_lcd_ShowString(1, 0, "Speed Measuring");
        while(1)
        {
        }
}

void EX0_IRQ(void) interrupt 0
{
        
        float speed = 0.0f;
        JumpTime++;                /* 統計中斷次數 */
        
        while(key == 0);                /* 等待按鍵被釋放 */
        
        if(JumpTime >= 2 && MeasureOK == 0)                /* 按鍵已經按了兩次,計算速度 */
        {
                JumpTime = 0;                /* 清除跳變量 */
                MeasureOK = 1;        /* 已經完成測量了 */
                speed = (float)((S /Time) * 1000.0);
                Time = 0;
                sprintf(str,"%f m/s", speed);
                bsp_lcd_ShowString(0, 1, str);
        }
}


#include "bsp.h"
void bsp_Config(void)
{
        bsp_lcd_Config();
        bsp_tim_Config();
}

void bsp_DelayMs(uint8_t ui_nMs)
{
        uint8_t a = 0, b = 0;
        
        for(; ui_nMs > 0; ui_nMs --)
        {
                for(a = 199; a > 0; a --)
                {
                        for(b = 1; b > 0; b --);
                }
        }
}
# include "bsp.h"
# include "app.h"
# define TIMS (65536 - FOSC/1000)

void bsp_tim_Config(void)
{
        TMOD = 0x01;
        TL0 = TIMS;
        TH0 = TIMS >> 8;
        TR0 = 1;
        ET0 = 1;
        EA = 1;
}

static count = 0;
extern uint8_t JumpTime;
extern uint32_t Time;
void timer0_IRQ(void)        interrupt 1 using 1
{
        TL0 = TIMS;                                /* 需要重裝初值 */
        TH0 = TIMS >> 8;
        
        if(JumpTime == 1)                /* 只有在第一次按下后才開始計數,直到第二次按下 */
        {
                Time ++;
        }
}
static void bsp_lcd_WriteCmd(uint8_t cmd)
{
        LCD_EN = 0;                        /*  使能LCD1602  */
        LCD_RD = 0;                        /*  選擇發送命令  */
        LCD_RW = 0;                        /*  選擇寫入  */
        
        LCD_DATA = cmd;                /* 寫入命令 */
        bsp_DelayMs(5);                /* 等待數據穩定延時5ms */
        
        LCD_EN = 1;                                /* 寫入時序 */
        bsp_DelayMs(10);
        LCD_EN = 0;        
}
static void bsp_lcd_WriteData(uint8_t dat)
{
        LCD_EN = 0;
        LCD_RD = 1;
        LCD_RW = 0;
        
        LCD_DATA = dat;        //將數據放到LCD里
        bsp_DelayMs(1);
        
        LCD_EN = 1;
        bsp_DelayMs(5);
        LCD_EN = 0;
}
void bsp_lcd_Config(void)
{
        bsp_lcd_WriteCmd(0x38);                /* 開顯示 */
        bsp_lcd_WriteCmd(0x0c);                /* 不顯示光標 */
        bsp_lcd_WriteCmd(0x06);                /* 寫一個指針加1 */
        bsp_lcd_WriteCmd(0x01);                /* 清屏 */
        bsp_lcd_WriteCmd(0x80);                /* 指針復位 */
}
static void bsp_lcd_SetPos(uint8_t x, uint8_t y)
{
        /* 坐標超出范圍了 */
        if(x > 15) return ;
        if(y > 1) return ;
        
        if(y == 0)        bsp_lcd_WriteCmd(x + 0x80);
        else if(y == 1) bsp_lcd_WriteCmd(x + 0xc0);        
}
void bsp_lcd_ShowNum(uint8_t x, uint8_t y, uint32_t num, uint8_t xbit)
{
        uint8_t temp = 0;
        
        while(xbit)
        {
                temp = num % 10;                /*  取得要顯示的個位  */
               
                /*  從最后一位開始顯示  */
                bsp_lcd_SetPos(x + xbit - 1, y);
               
                bsp_lcd_WriteData(temp + 0x30);
                num/=10;                /* 已經顯示完個位了,把個位扔掉 */
                xbit --;                /* 由于是從后往前開始顯示,所以x坐標軸要減小 */
        }
}
void bsp_lcd_ShowChar(uint8_t x, uint8_t y, uint8_t c)
{
        bsp_lcd_SetPos(x, y);               
        bsp_lcd_WriteData(c);
}
void bsp_lcd_ShowString(uint8_t x, uint8_t y, uint8_t *string)
{
        uint8_t i = 0;
        
        while(*(string + i))                /* 在字符串沒有結束就一直顯示 */
        {
                bsp_lcd_ShowChar(x + i, y, *(string + i));
                i++;
        }
}


作者: 1952968380    時間: 2019-7-8 15:48
keil文件使用方法你可以查一下,貌似只能打開單片機應用的文件,希望對你有幫助




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 欧美黑人体内she精在线观看 | 成人精品久久日伦片大全免费 | 久久com | 国产精品毛片久久久久久 | 一区二区三区av | 伊人网综合在线观看 | 成人欧美一区二区三区黑人孕妇 | 亚洲综合大片69999 | 台湾a级理论片在线观看 | 人人看人人爽 | 天天操天天射天天 | 亚洲国产精品福利 | 人人玩人人干 | 成年人黄色一级片 | 国内自拍偷拍一区 | 国产精品1区2区3区 男女啪啪高潮无遮挡免费动态 | av黄色在线 | 黑人巨大精品欧美一区二区免费 | 精品一区二区在线观看 | 人人草天天草 | 三区四区在线观看 | 日韩精品一区二区三区视频播放 | 色伊人久久 | 久久久日韩精品一区二区三区 | 亚洲精品乱码久久久久久黑人 | 欧美一级片在线看 | 日韩一区二区三区精品 | 亚洲精品一区中文字幕乱码 | 在线免费观看黄色av | 麻豆久久久久久 | 精品国产一区二区三区久久久蜜月 | 日韩在线一区二区 | 久草免费在线视频 | 免费在线播放黄色 | 亚洲自拍偷拍欧美 | 91动漫在线观看 | 国产精品久久在线观看 | 成人高清在线 | 一级片在线观看视频 | 中文字幕在线视频免费视频 | av大片在线观看 |