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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4221|回復: 0
打印 上一主題 下一主題
收起左側

MSP-EXP430F5529白板子菜單及框架示例程序概覽資料下載

[復制鏈接]
跳轉到指定樓層
樓主
下面我將從這幾方面介紹:
(一)【編寫目的】
(二)【快速使用】
(三)【程序概覽】
(四)【實戰例子】
(五)【其他】
(一)【編寫目的】
首先使用白板子的好處就是:自帶一塊LCD顯示屏,所以【如何能非常方便的使用LCD,結合板子的各個模塊實現相應需求】即為目的,
只為了【方便不了解的人能迅速上手通過修改添加相當少的代碼即實現相應需求】。
(二)【快速使用】
新建CCS工程(分享CCS5的下載地址  http://pan.baidu.com/s/1i48nYlB
下載我的代碼,代碼已上傳至群文件,也可在此下載(http://download.csdn.net/detail/yws_swy/9830060
下載好之后解壓文件,將其內全部.c和.h文件復制
粘貼到剛才新建的工程里,全部覆蓋
然后連接好板子分別點擊這兩個標志,進行編譯連接和調試,過一會程序成功下載到板子上了,點擊運行
此時屏幕上即出現歡迎界面,按S2鍵進入菜單,滾動滾輪選擇功能,按S1鍵進入相應功能,至此,算是開始使用了。
(三)【程序概覽】
首先看一下目錄結構:
main【總入口】;
board【白板子各模塊驅動】;
dogs102x6【白板子液晶顯示屏】內含畫折線圖、顯示字符串、畫圓、畫線、畫圖片等函數;
globalvar【全局變量】如按鍵標志、滾輪ADC采樣值、當前菜單頁數等;
init【總體初始化】;
lib【基本運算庫】內含濾波函數、整數轉字符串函數、小數轉字符串函數、求最大值最小值函數、升序排序函數;
menu【通過滾輪配合菜單選項】;
user【用戶來編寫的程序】;
綜上,注意,如果不是十分了解盡量不要修改其他文件代碼,僅需修改Yuser.c文件即可。
下面來看一下具體的代碼
main.c中僅初始化后調用了Yuser.c中的yUserStart();
Yuser.c文件中的yUserStart()里面的代碼才是真正的流程控制。
進入到Yuser.c文件(【提示】:按住Ctrl鍵并移動鼠標到函數名上,直到函數名下面出現下劃線,此時單擊鼠標左鍵可快速進入函數內部查看)可以看到如下代碼:
至此足以看出大體流程,通過Ytotalitems設置菜單中的功能選項數量,在Ymenutext[]中寫好每一個選項的標題,然后用selection保存滾輪最后確定的選項,根據selection的值用switch...case...語句選擇執行不同的功能。這就是基本流程控制。

下面結合著寫好的這幾個例子具體來看:
(1)第一個函數yWelcome();
yDogs102x6_imageDraw(s505, 0, 0);畫圖片(不推薦費時間在這里,如有需要,詳細生成可參考http://download.csdn.net/detail/yws_swy/9581130
這里我們只看yDogs102x6_stringDraw(0, 0, "Press S2 to Menu.",NORMAL_STYLE); //顯示字符串
這個函數接受了四個參數(起始行(0~7)、起始列(0~102)、顯示字符串、顯示格式)
例如,在第二行顯示ystr字符串就可以寫成:
顯示格式有四種,分別是(白底黑字NORMAL_STYLE)、(黑底白字INVERT_STYLE)、(整行白底黑字NORMAL_STYLE+ROW_STYLE)、(整行黑底白字INVERT_STYLE+ROW_STYLE)
例如,把白底黑字改成黑底白字效果就是
(整行白底黑字NORMAL_STYLE+ROW_STYLE)和(整行黑底白字INVERT_STYLE+ROW_STYLE)這兩種格式是在字符串長度短,不能填滿一整行時的可選選項,比如當僅顯示"Press S2"時,僅白底黑字就會出現下面的一半黑一半白的情況:
此時改為NORMAL_STYLE+ROW_STYLE,就會對整行都有效:
最后while (!(Ybuttonspressed & BUTTON_S2)); 表示直到按下S2鍵才返回菜單,因為按下S2鍵觸發了按鍵中斷,中斷函數中修改了Ybuttonspressed的值,
這樣這里通過判斷Ybuttonspressed的值就知道是否按下了S2鍵,按下了則while結束,退出yWelcome函數。
(2)第二個函數yContrastSetting():
首先需要用滾輪采樣,則要yWheel_enable();使能滾輪及ADC,然后不停地通過yWheel_getPosition(25);獲取滾輪位置轉化為0~24之間的值來設置LCD對比度,直到S2鍵按下為止,最后別忘了禁止滾輪yWheel_disable();
(3)第三個函數ySimpleDraw
這里面調用了畫圓和畫直線的函數,還是那樣按住Ctrl鍵+鼠標單擊,進入函數內部查看每個參數含義:
(4)第四個函數yShowNum()
這里有兩個我寫好的函數yItoa()和yFtoa(),在Ylib.c中可以看到它們的定義,可以得知實現了把數值類型的數據轉換為字符串顯示到了LCD上。
(5)第五個函數yInputNum()
因為按鍵過少,所以只能通過滾輪轉到不同位置來輸入不同數值,比如想輸入7.96,則要通過滾輪分別轉到7、·、9、6(這里為了避免按鍵消抖,虛擬設置了S2為S1使能,即S1為確定鍵,但每次按S1鍵前必須按一次S2來使能S1,這樣就避免了可能抖動帶來的連續輸入了兩個7的情況)。輸入完畢后,再通過滾輪轉到END并確定結束,這時就會把輸入的字符串換算為值保存給gnum1。
(6)第六個函數yShowCurve()
實際上,這是通過調用很多次前面畫直線的函數來實現的,其中還用到了Ylib.c中的yFinMax、yFinMin求最值下標等函數,具體實現這里不細說,相關設置有幾處
(四)【實戰例子】
下面用上面提到的函數隨便寫個例子,比如實現一個fun函數,要求由滾輪轉動的位置轉換為0~100之內的數值,并實時顯示到LCD屏幕上,按S2鍵結束。
注意咯,在菜單上每添加一個功能基本上都是下面這四個步驟:
(1)添加菜單選項標題:
在Yuser.c中找到Ymenutext部分,在其后添加第6項功能fun。
(2)設置菜單選項個數:
將下面yUserStart()函數中的Ytotalitems的值由5改為6,表示有6項菜單選項。
(3)設置選項調用流程:
在下面的while(1)里面添加case 6的流程控制,表示第6項將執行fun()函數。
(4)編寫新增函數fun():
void fun(){
int value = 0;
char str[4] = "";
yWheel_init();//使能滾輪
while (!(Ybuttonspressed & BUTTON_S2)){//直到S2鍵按下才會退出
value = yWheel_getPosition(100);//將滾輪位置轉換為0~100之間的值
yItoa(value,str);//int整數轉換為字符串
yDogs102x6_stringDraw(0,0,str,NORMAL_STYLE+ROW_STYLE);//畫字符串
}
yWheel_disable();//禁止滾輪
}
//編譯運行即可發現菜單中已經多了一個fun選項,進入之后會隨著滾輪的轉動實時顯示一個0~100之間的數值,至此完成了一個菜單選項的添加。
(五)【其他】
這其中,還需要注意的有幾個問題:
(1)按鍵只有兩個,所以這里用滾輪+菜單來進行功能選擇;
(2)IO口過少,一般只做控制信號通用IO和顯示功能,復雜的功能容易和板上資源沖突,所以沒考慮ADC等功能;
(3)只設置了一層菜單,沒有編寫多層,一方面因為有了滾輪即使再多的功能都不擔心一層菜單顯示不下,另一方面因為多層菜單時需要考慮按鍵消抖,而一層菜單時S2鍵始終都是菜單鍵,S1鍵始終都是確定鍵,也就不需要考慮按鍵消抖了;
(4)為防止不必要的干擾,沒有設置背光亮度的PWM波,還降低了功耗;
(5)只寫出了以下三個在Yuser.c中的中斷函數,如有需要請在Yuser.c中自行添加
#pragma vector=PORT1_VECTOR //按鍵S1
#pragma vector=PORT2_VECTOR        //按鍵S2
#pragma vector = ADC12_VECTOR
(6)最好不要用sprintf等支持不全的函數來把數值轉換為字符串,因為CCS5中支持sprintf,而CCS6中就不支持,所以這里最好使用Ylib.c中寫好的yItoa和yFtoa函數。
(7)此外,Ylib.c中還寫好了諸如簡單濾波,升序排序等函數,可自行選擇使用,并歡迎繼續完善。
(8)
/*相關學習資料分享:
* MSP-EXP5529開發板實驗指導書:
* http://download.csdn.net/detail/yws_swy/9830063
* MSP430F5529 官方代碼例程庫:
* http://download.csdn.net/detail/yws_swy/9830064
* MSP430F5529 中文手冊:
* http://download.csdn.net/detail/yws_swy/9789980
* CCS5的下載地址:
* http://pan.baidu.com/s/1i48nYlB
* LCD顯示動畫、圖片、漢字教程
* http://pan.baidu.com/s/1slfh9vv
* https://pan.baidu.com/s/1bpF1X4V
*/



全部資料51hei下載地址:
MSP-EXP430F5529開發板硬件電路圖.zip (744.97 KB, 下載次數: 22)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91九色在线观看 | 狠狠草视频 | 亚洲免费在线观看av | 亚洲日本一区二区三区四区 | 国产在线一区二 | 日韩不卡在线 | a国产视频 | 亚洲午夜小视频 | 亚洲综合日韩精品欧美综合区 | 亚洲综合视频 | 亚洲精品一区二区另类图片 | 午夜欧美 | 黄免费看 | 亚洲一区 | 成人av免费在线观看 | 久久99精品久久久久久国产越南 | 色婷婷一区二区三区四区 | 又爽又黄axxx片免费观看 | 亚洲一区二区在线播放 | 国产日产欧产精品精品推荐蛮挑 | 精品国产欧美日韩不卡在线观看 | 日本不卡免费新一二三区 | 国产亚洲黄色片 | 国产日韩精品在线 | 蜜桃臀av一区二区三区 | 中文字幕视频在线观看 | 久久久久国产精品一区二区 | 日韩区 | 亚洲高清成人在线 | 国产精品亚洲精品 | 五月婷婷激情 | 日一区二区| 国产高清在线精品一区二区三区 | 日韩高清www| aaa综合国产| 国产视频h | 国产精品久久久久久久久图文区 | 99pao成人国产永久免费视频 | 日韩精品一区二区三区视频播放 | 三级成人在线观看 | 一级免费毛片 |