欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2425|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

Keil編譯顯示打不開頭文件,出現(xiàn) before 'jump...

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:567836 發(fā)表于 2019-6-30 13:43 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
# include "bsp.h"
# define S        5.0f
uint8_t JumpTime = 0;                /* 外部中斷0邊沿跳變次數(shù)統(tǒng)計 */
uint8_t MeasureOK = 0;        /* 測量完成標志 */
uint32_t Time = 0;                        /* 用于計算兩次邊沿跳變的時間 */
uint8_t str[20] = {0};        /* LCD顯示緩存區(qū) */


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

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

void EX0_IRQ(void) interrupt 0
{
        
        float speed = 0.0f;
        JumpTime++;                /* 統(tǒng)計中斷次數(shù) */
        
        while(key == 0);                /* 等待按鍵被釋放 */
        
        if(JumpTime >= 2 && MeasureOK == 0)                /* 按鍵已經(jīng)按了兩次,計算速度 */
        {
                JumpTime = 0;                /* 清除跳變量 */
                MeasureOK = 1;        /* 已經(jīng)完成測量了 */
                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)                /* 只有在第一次按下后才開始計數(shù),直到第二次按下 */
        {
                Time ++;
        }
}
static void bsp_lcd_WriteCmd(uint8_t cmd)
{
        LCD_EN = 0;                        /*  使能LCD1602  */
        LCD_RD = 0;                        /*  選擇發(fā)送命令  */
        LCD_RW = 0;                        /*  選擇寫入  */
        
        LCD_DATA = cmd;                /* 寫入命令 */
        bsp_DelayMs(5);                /* 等待數(shù)據(jù)穩(wěn)定延時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;        //將數(shù)據(jù)放到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);                /* 指針復(fù)位 */
}
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;                /* 已經(jīng)顯示完個位了,把個位扔掉 */
                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))                /* 在字符串沒有結(jié)束就一直顯示 */
        {
                bsp_lcd_ShowChar(x + i, y, *(string + i));
                i++;
        }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:577549 發(fā)表于 2019-7-8 15:48 來自觸屏版 | 只看該作者
keil文件使用方法你可以查一下,貌似只能打開單片機應(yīng)用的文件,希望對你有幫助
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表