發表文章

目前顯示的是 12月, 2018的文章

危機處理- 絶対に賣不出去的碼表

圖片
各位同學今天要做的是碼表 就是在跑1600那種老師可以拿來記錄秒數的碼表 是不是很簡單呢,真的很簡單~ 那我們就先來處理名次紀錄的部分 名次(秒數)紀錄: 在 void RTC_IRQHandler ( void ) 函式下尻入下列程式碼判讀鍵盤跟print出時間 歐對記得宣告 TEXT 陣列兄弟們還有 變數N 變數N 在這裡的主要功能是保持紀錄的優先順序(key1被按之前key2,key3都不能按,etc) key=Scankey();//讀取鍵盤值 if(key==1&&N==0){ N=1; sprintf(TEXT3,"%02d:%02d:%02d",sCurTime.u32cHour ,sCurTime.u32cMinute,sCurTime.u32cSecond); print_lcd(2, TEXT3); } if(key==2&&N==1){ N=2; sprintf(TEXT4,"%02d:%02d:%02d",sCurTime.u32cHour ,sCurTime.u32cMinute,sCurTime.u32cSecond); print_lcd(1, TEXT4); } if(key==3&&N==2){ N=3; sprintf(TEXT5,"%02d:%02d:%02d",sCurTime.u32cHour ,sCurTime.u32cMinute,sCurTime.u32cSecond); print_lcd(0, TEXT5); } 接下來要弄暫停跟重制: 一樣都放在 void RTC_IRQHandler ( void ) 函式下 1.暫停基本上跟記錄秒數一樣,就是把跑秒數的那一行拿來print按下key4當的秒數 但是! 此時要把不停更新當前秒數的程式碼暫停(下一段會說明) 2.重制很簡單就是先清除螢幕在重啟RTC if(key==4){ //暫停 N=4; sprintf(TEXT6,"%02d:%02d:%02d",sCurTime.u32cHour ,sCurTime.u32cMinute

危機處理-原來是LCD的部分阿~(附壓縮檔)

圖片
又到了交作業了時間了各位同學 今天的作業是利用光敏電阻(ADC)改變LCD上的電池顯示 錒......其實就是考你LCD阿 記得助教說多大都沒問題整個螢幕都可以所以我就畫了一個這樣的東西XD(彩蛋自己找) 總共畫了四張(電池一格,兩格...etc) 之後用軟體轉換成txt檔案 battery1.txt battery2.txt battery3.txt battery4.txt 之後記得 宣告 R! 判斷試的部分就直接用 draw_LCD() 函式整個畫出來 (記得add跟在主程式include driver_Extend.c ) if(ADC->ADDR[5].RSLT>2000){ Duty_Cycle=0; draw_LCD(battery1); } else if(ADC->ADDR[5].RSLT>1000){ Duty_Cycle=25; draw_LCD(battery2); } else if(ADC->ADDR[5].RSLT>800){ Duty_Cycle=50; draw_LCD(battery3); } else if(ADC->ADDR[5].RSLT>600){ Duty_Cycle=75; draw_LCD(battery4); } 最後壓縮檔附上 點我