📄 main_8c-source.html
字号:
<a name="l00268"></a>00268 <a class="code" href="lcd_8c.html#745f4e24d600186db3dc2fea9b4a52d6">LCD_printf</a> (<span class="stringliteral">"%s\n"</span>, finfo.<a class="code" href="struct__FILINFO.html#7279fa6b57203d143e96021a099e7e57">fname</a>);<a name="l00269"></a>00269 }<a name="l00270"></a>00270 }<a name="l00271"></a>00271 }<a name="l00272"></a>00272 <span class="keywordflow">else</span><a name="l00273"></a>00273 {<a name="l00274"></a>00274 <a class="code" href="lcd_8c.html#745f4e24d600186db3dc2fea9b4a52d6">LCD_printf</a> (<span class="stringliteral">"opendir ERR:\n%s\n"</span>, <a class="code" href="main_8c.html#14b2736f4de73b772af55d5dccc01445">FF_getErrorStr</a> (fres));<a name="l00275"></a>00275 }<a name="l00276"></a>00276 <span class="preprocessor">#endif</span><a name="l00277"></a>00277 <span class="preprocessor"></span> <a class="code" href="lcd_8c.html#b3d3c08a4027d3e918914c1562ced027">LCD_clear</a> ();<a name="l00278"></a>00278 fileList[0].<a class="code" href="structmenuPoint__t.html#4ad1f009c71271824adc529eabdaa580">menuTitle</a> = NULL;<a name="l00279"></a>00279 <span class="keywordflow">if</span> ((fres = f_opendir (&dir, <span class="stringliteral">"/"</span>)) == FR_OK)<a name="l00280"></a>00280 {<a name="l00281"></a>00281 <span class="keywordflow">while</span> (((fres = f_readdir (&dir, &finfo)) == FR_OK) && finfo.<a class="code" href="struct__FILINFO.html#7279fa6b57203d143e96021a099e7e57">fname</a>[0] && fileNumber < maxFileNumber)<a name="l00282"></a>00282 {<a name="l00283"></a>00283 menuTitleLength = strlen (finfo.<a class="code" href="struct__FILINFO.html#7279fa6b57203d143e96021a099e7e57">fname</a>) + 1; <span class="comment">// +1 is for "/"</span><a name="l00284"></a>00284 fileList[fileNumber].<a class="code" href="structmenuPoint__t.html#4ad1f009c71271824adc529eabdaa580">menuTitle</a> = malloc (menuTitleLength);<a name="l00285"></a>00285 <span class="keywordflow">if</span> (fileList[fileNumber].menuTitle != NULL)<a name="l00286"></a>00286 {<a name="l00287"></a>00287 strcpy (fileList[fileNumber].menuTitle, finfo.<a class="code" href="struct__FILINFO.html#7279fa6b57203d143e96021a099e7e57">fname</a>);<a name="l00288"></a>00288 <span class="keywordflow">if</span> (finfo.<a class="code" href="struct__FILINFO.html#983a99f79b704ced3a6cb640719aa679">fattrib</a> & AM_DIR) <a name="l00289"></a>00289 {<a name="l00290"></a>00290 strncat (fileList[fileNumber].menuTitle, <span class="stringliteral">"/"</span>, menuTitleLength);<a name="l00291"></a>00291 } <a name="l00292"></a>00292 fileList[fileNumber].<a class="code" href="structmenuPoint__t.html#b967d1815f0207cc391c9cdd366da36a">subMenu</a> = NULL;<a name="l00293"></a>00293 fileList[fileNumber].<a class="code" href="structmenuPoint__t.html#0e9a6e88df91edcc1fd604f4c4bca5cd">menuHandlerCallback</a> = NULL;<a name="l00294"></a>00294 fileNumber++;<a name="l00295"></a>00295 }<a name="l00296"></a>00296 }<a name="l00297"></a>00297 fileList[fileNumber].<a class="code" href="structmenuPoint__t.html#4ad1f009c71271824adc529eabdaa580">menuTitle</a> = NULL;<a name="l00298"></a>00298 <a class="code" href="menu_8c.html#38aaa1e7511f3c8ca886446cbdcfe035">MENU_init</a> (fileList);<a name="l00299"></a>00299 <span class="keywordflow">do</span><a name="l00300"></a>00300 {<a name="l00301"></a>00301 buttonPressed = <a class="code" href="periphery_8c.html#63c0677a7650d8b00aabded94d64693c">KBD_getButtonPressed</a> ();<a name="l00302"></a>00302 <a class="code" href="menu_8c.html#ed5187914ca2167bf9757763e17e4e59">MENU_handler</a> (buttonPressed);<a name="l00303"></a>00303 <a class="code" href="time_8c.html#9af0f4a5c28d65ca84fb763fd91e8731">mdelay</a> (20);<a name="l00304"></a>00304 } <span class="keywordflow">while</span> (!(buttonPressed & <a class="code" href="periphery_8h.html#14dc48ed135ccdd9551d8ac9195adce3d64ccc54e9ccb336174d4ef9df161fdd">KBD_QUIT</a>));<a name="l00305"></a>00305 <a class="code" href="menu_8c.html#38aaa1e7511f3c8ca886446cbdcfe035">MENU_init</a> (<a class="code" href="main_8c.html#fbb593c4b4f25e2bbdd772e53e2c72c2">rootMenu</a>);<a name="l00306"></a>00306 }<a name="l00307"></a>00307 <span class="keywordflow">else</span><a name="l00308"></a>00308 {<a name="l00309"></a>00309 <a class="code" href="lcd_8c.html#745f4e24d600186db3dc2fea9b4a52d6">LCD_printf</a> (<span class="stringliteral">"opendir ERR:\n%s\n"</span>, <a class="code" href="main_8c.html#14b2736f4de73b772af55d5dccc01445">FF_getErrorStr</a> (fres));<a name="l00310"></a>00310 <a class="code" href="time_8c.html#9af0f4a5c28d65ca84fb763fd91e8731">mdelay</a> (500);<a name="l00311"></a>00311 }<a name="l00312"></a>00312 }<a name="l00313"></a>00313 <a name="l00318"></a><a class="code" href="main_8c.html#67fe42fcbc896adacc7fd7ba05cf1a08">00318</a> <span class="keywordtype">void</span> <a class="code" href="main_8c.html#67fe42fcbc896adacc7fd7ba05cf1a08">FF_showBitmap</a> ()<a name="l00319"></a>00319 {<a name="l00320"></a>00320 <a class="code" href="common_8h.html#449976458a084f880dc8e3d29e7eb6f5">bool_t</a> ok = <a class="code" href="common_8h.html#a93f0eb578d23995850d61f7d61c55c1">FALSE</a>;<a name="l00321"></a>00321 <a class="code" href="struct__FIL.html">FIL</a> F;<a name="l00322"></a>00322 <a class="code" href="struct__FILINFO.html">FILINFO</a> finfo;<a name="l00323"></a>00323 FRESULT fres;<a name="l00324"></a>00324 WORD allBytesRead = 0;<a name="l00325"></a>00325 WORD bytesRead;<a name="l00326"></a>00326 <span class="keyword">const</span> <span class="keywordtype">char</span>* filename = <span class="stringliteral">"test.rgb"</span>;<a name="l00327"></a>00327 uint8_t buf[512];<a name="l00328"></a>00328 uint16_t i;<a name="l00329"></a>00329 <a class="code" href="periphery_8h.html#ee61ae8f1c2cb6699241b9779166205f">KBD_buttonPressed_t</a> buttonPressed;<a name="l00330"></a>00330 <a name="l00331"></a>00331 <span class="keywordflow">if</span> (<a class="code" href="main_8c.html#8acca514c3ef07ad3483a43875c79bfe">fatfsOk</a>)<a name="l00332"></a>00332 {<a name="l00333"></a>00333 fres = f_open (&F, filename, FA_READ);<a name="l00334"></a>00334 <span class="keywordflow">if</span> (fres == FR_OK)<a name="l00335"></a>00335 {<a name="l00336"></a>00336 <a class="code" href="lcd_8c.html#1438de3eb25869f783510314477c8e4b">LCD_write130x130bmpStart</a> ();<a name="l00337"></a>00337 <span class="keywordflow">do</span> <a name="l00338"></a>00338 {<a name="l00339"></a>00339 fres = f_read (&F, buf, <span class="keyword">sizeof</span> (buf), &bytesRead);<a name="l00340"></a>00340 allBytesRead += bytesRead;<a name="l00341"></a>00341 <span class="keywordflow">if</span> (fres == FR_OK)<a name="l00342"></a>00342 {<a name="l00343"></a>00343 <span class="keywordflow">for</span> (i = 0; i < bytesRead; i++)<a name="l00344"></a>00344 {<a name="l00345"></a>00345 <a class="code" href="lcd_8c.html#d81dfff852b25f50680bb69ddd392dc9">LCD_write130x130bmpData8</a> (&(buf[i]));<a name="l00346"></a>00346 }<a name="l00347"></a>00347 }<a name="l00348"></a>00348 <span class="keywordflow">else</span><a name="l00349"></a>00349 {<a name="l00350"></a>00350 <a class="code" href="lcd_8c.html#8933cd51eaa3e1accfb275eea918fa56">LCD_write130x130bmpEnd</a> ();<a name="l00351"></a>00351 <a class="code" href="lcd_8c.html#b3d3c08a4027d3e918914c1562ced027">LCD_clear</a> ();<a name="l00352"></a>00352 <a class="code" href="lcd_8c.html#745f4e24d600186db3dc2fea9b4a52d6">LCD_printf</a> (<span class="stringliteral">"read ERR:\n%s\n"</span>, <a class="code" href="main_8c.html#14b2736f4de73b772af55d5dccc01445">FF_getErrorStr</a> (fres));<a name="l00353"></a>00353 }<a name="l00354"></a>00354 } <span class="keywordflow">while</span> (fres == FR_OK && bytesRead);<a name="l00355"></a>00355 f_close (&F);<a name="l00356"></a>00356 <a class="code" href="lcd_8c.html#8933cd51eaa3e1accfb275eea918fa56">LCD_write130x130bmpEnd</a> ();<a name="l00357"></a>00357 <span class="comment">//ok = TRUE;</span><a name="l00358"></a>00358 }<a name="l00359"></a>00359 <span class="keywordflow">else</span><a name="l00360"></a>00360 {<a name="l00361"></a>00361 <a class="code" href="lcd_8c.html#745f4e24d600186db3dc2fea9b4a52d6">LCD_printf</a> (<span class="stringliteral">"open ERR:\n%s\n"</span>, <a class="code" href="main_8c.html#14b2736f4de73b772af55d5dccc01445">FF_getErrorStr</a> (fres));<a name="l00362"></a>00362 }<a name="l00363"></a>00363 }<a name="l00364"></a>00364 <span class="keywordflow">else</span><a name="l00365"></a>00365 {<a name="l00366"></a>00366 <a class="code" href="lcd_8c.html#745f4e24d600186db3dc2fea9b4a52d6">LCD_printf</a> (<span class="stringliteral">"FatFs not OK!\n"</span>);<a name="l00367"></a>00367 <a class="code" href="lcd_8c.html#745f4e24d600186db3dc2fea9b4a52d6">LCD_printf</a> (<span class="stringliteral">"Press OK/Quit"</span>);<a name="l00368"></a>00368 }<a name="l00369"></a>00369 <span class="comment">//return ok;</span><a name="l00370"></a>00370 <span class="keywordflow">do</span><a name="l00371"></a>00371 {<a name="l00372"></a>00372 buttonPressed = <a class="code" href="periphery_8c.html#63c0677a7650d8b00aabded94d64693c">KBD_getButtonPressed</a> ();<a name="l00373"></a>00373 <a class="code" href="time_8c.html#9af0f4a5c28d65ca84fb763fd91e8731">mdelay</a> (20);<a name="l00374"></a>00374 } <span class="keywordflow">while</span> (!(buttonPressed & <a class="code" href="periphery_8h.html#14dc48ed135ccdd9551d8ac9195adce3d64ccc54e9ccb336174d4ef9df161fdd">KBD_QUIT</a>) && !(buttonPressed & <a class="code" href="periphery_8h.html#14dc48ed135ccdd9551d8ac9195adce37e7f58f2dfc495230247864c3c42c181">KBD_OK</a>));<a name="l00375"></a>00375 }<a name="l00376"></a>00376 <a name="l00382"></a><a class="code" href="main_8c.html#dd8738a9aa405bc12782c7a072ad0f52">00382</a> <span class="keywordtype">void</span> <a class="code" href="main_8c.html#dd8738a9aa405bc12782c7a072ad0f52">FF_fileTest</a> ()<a name="l00383"></a>00383 {<a name="l00384"></a>00384 <a class="code" href="struct__FIL.html">FIL</a> F;<a name="l00385"></a>00385 FRESULT fres;<a name="l00386"></a>00386 WORD bytesWritten;<a name="l00387"></a>00387 WORD bytesRead;<a name="l00388"></a>00388 <span class="keyword">const</span> <span class="keywordtype">char</span> filename[] = <span class="stringliteral">"fftest.txt"</span>;<a name="l00389"></a>00389 <span class="keyword">const</span> <span class="keywordtype">char</span> buf1[] = <span class="stringliteral">"Hello world!\nIf you can read this text, the filesystem module is working!\n"</span>;<a name="l00390"></a>00390 <span class="keywordtype">char</span> buf2[80];<a name="l00391"></a>00391 <a class="code" href="periphery_8h.html#ee61ae8f1c2cb6699241b9779166205f">KBD_buttonPressed_t</a> buttonPressed;<a name="l00392"></a>00392 <a name="l00393"></a>00393 <span class="keywordflow">if</span> (<a class="code" href="main_8c.html#8acca514c3ef07ad3483a43875c79bfe">fatfsOk</a>)<a name="l00394"></a>00394 {<a name="l00395"></a>00395 <a class="code" href="lcd_8c.html#745f4e24d600186db3dc2fea9b4a52d6">LCD_printf</a> (<span class="stringliteral">"Writing... "</span>);<a name="l00396"></a>00396 fres = f_open (&F, filename, FA_READ | FA_WRITE | FA_CREATE_ALWAYS);<a name="l00397"></a>00397 <span class="keywordflow">if</span> (fres == FR_OK)<a name="l00398"></a>00398 {<a name="l00399"></a>00399 fres = f_write (&F, buf1, <span class="keyword">sizeof</span> (buf1) - 1, &bytesWritten);<a name="l00400"></a>00400 <span class="keywordflow">if</span> (fres != FR_OK)<a name="l00401"></a>00401 {<a name="l00402"></a>00402 <a class="code" href="lcd_8c.html#745f4e24d600186db3dc2fea9b4a52d6">LCD_printf</a> (<span class="stringliteral">"write ERR:\n%s\n"</span>, <a class="code" href="main_8c.html#14b2736f4de73b772af55d5dccc01445">FF_getErrorStr</a> (fres));<a name="l00403"></a>00403 }<a name="l00404"></a>00404 f_sync (&F);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -