📄 main_8c-source.html
字号:
<a name="l00405"></a>00405 f_close (&F);<a name="l00406"></a>00406 <a class="code" href="lcd_8c.html#745f4e24d600186db3dc2fea9b4a52d6">LCD_printf</a> (<span class="stringliteral">"OK\n"</span>);<a name="l00407"></a>00407 }<a name="l00408"></a>00408 <span class="keywordflow">else</span><a name="l00409"></a>00409 {<a name="l00410"></a>00410 <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="l00411"></a>00411 }<a name="l00412"></a>00412 <a class="code" href="lcd_8c.html#745f4e24d600186db3dc2fea9b4a52d6">LCD_printf</a> (<span class="stringliteral">"Reading... "</span>);<a name="l00413"></a>00413 fres = f_open (&F, filename, FA_READ);<a name="l00414"></a>00414 <span class="keywordflow">if</span> (fres == FR_OK)<a name="l00415"></a>00415 {<a name="l00416"></a>00416 fres = f_read (&F, buf2, <span class="keyword">sizeof</span> (buf1) - 1, &bytesRead);<a name="l00417"></a>00417 <span class="keywordflow">if</span> (fres != FR_OK)<a name="l00418"></a>00418 {<a name="l00419"></a>00419 <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="l00420"></a>00420 }<a name="l00421"></a>00421 f_close (&F);<a name="l00422"></a>00422 <a class="code" href="lcd_8c.html#745f4e24d600186db3dc2fea9b4a52d6">LCD_printf</a> (<span class="stringliteral">"OK\n"</span>);<a name="l00423"></a>00423 }<a name="l00424"></a>00424 <span class="keywordflow">else</span><a name="l00425"></a>00425 {<a name="l00426"></a>00426 <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="l00427"></a>00427 }<a name="l00428"></a>00428 <a class="code" href="lcd_8c.html#745f4e24d600186db3dc2fea9b4a52d6">LCD_printf</a> (<span class="stringliteral">"Comparing... "</span>);<a name="l00429"></a>00429 <span class="keywordflow">if</span> (memcmp (buf1, buf2, <span class="keyword">sizeof</span> (buf1) - 1) == 0)<a name="l00430"></a>00430 {<a name="l00431"></a>00431 <a class="code" href="lcd_8c.html#745f4e24d600186db3dc2fea9b4a52d6">LCD_printf</a> (<span class="stringliteral">"OK\n"</span>);<a name="l00432"></a>00432 }<a name="l00433"></a>00433 <span class="keywordflow">else</span><a name="l00434"></a>00434 {<a name="l00435"></a>00435 <a class="code" href="lcd_8c.html#745f4e24d600186db3dc2fea9b4a52d6">LCD_printf</a> (<span class="stringliteral">"Failed!\n"</span>);<a name="l00436"></a>00436 }<a name="l00437"></a>00437 }<a name="l00438"></a>00438 <span class="keywordflow">else</span><a name="l00439"></a>00439 {<a name="l00440"></a>00440 <a class="code" href="lcd_8c.html#745f4e24d600186db3dc2fea9b4a52d6">LCD_printf</a> (<span class="stringliteral">"FatFs not OK!\n"</span>);<a name="l00441"></a>00441 }<a name="l00442"></a>00442 <a class="code" href="lcd_8c.html#745f4e24d600186db3dc2fea9b4a52d6">LCD_printf</a> (<span class="stringliteral">"\nPress OK/Quit"</span>);<a name="l00443"></a>00443 <span class="keywordflow">do</span><a name="l00444"></a>00444 {<a name="l00445"></a>00445 buttonPressed = <a class="code" href="periphery_8c.html#63c0677a7650d8b00aabded94d64693c">KBD_getButtonPressed</a> ();<a name="l00446"></a>00446 <a class="code" href="time_8c.html#9af0f4a5c28d65ca84fb763fd91e8731">mdelay</a> (20);<a name="l00447"></a>00447 } <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="l00448"></a>00448 }<a name="l00449"></a>00449 <a name="l00450"></a>00450 <span class="comment">//#define MMA</span><a name="l00451"></a>00451 <a name="l00452"></a><a class="code" href="main_8c.html#9aeccf032918bdda6dc810a5c3a35200">00452</a> <span class="preprocessor">#define POS_COL_START 0x3d</span><a name="l00453"></a><a class="code" href="main_8c.html#3534ce3215782f0aa50177725c61073c">00453</a> <span class="preprocessor"></span><span class="preprocessor">#define POS_COL_END 0x44</span><a name="l00454"></a><a class="code" href="main_8c.html#640b903855d0225596dcb93e192783dd">00454</a> <span class="preprocessor"></span><span class="preprocessor">#define POS_ROW_START 0x00</span><a name="l00455"></a><a class="code" href="main_8c.html#bc01f7f7286685e34f31a70869e74ede">00455</a> <span class="preprocessor"></span><span class="preprocessor">#define POS_ROW_END 0x0f</span><a name="l00456"></a>00456 <span class="preprocessor"></span><a name="l00457"></a><a class="code" href="main_8c.html#7a946ac4b6c7418e09eed4c19d4a83fe">00457</a> <span class="preprocessor">#define ROW_EXCEED_LEFT 180 // stupid, but we work with unsigned variable</span><a name="l00458"></a><a class="code" href="main_8c.html#0b5727aff394c7933d07eed87e83fc91">00458</a> <span class="preprocessor"></span><span class="preprocessor">#define ROW_EXCEED_RIGHT 110</span><a name="l00459"></a><a class="code" href="main_8c.html#f0964ee9b30f1896cf166b86b8c24e45">00459</a> <span class="preprocessor"></span><span class="preprocessor">#define COL_EXCEED_LEFT 180 // stupid, but we work with unsigned variable</span><a name="l00460"></a><a class="code" href="main_8c.html#e3917be7267877604aba9262b2168360">00460</a> <span class="preprocessor"></span><span class="preprocessor">#define COL_EXCEED_RIGHT 110</span><a name="l00461"></a>00461 <span class="preprocessor"></span><a name="l00462"></a><a class="code" href="main_8c.html#efd00edb9e71d2c64da766fcacefabf2">00462</a> <span class="preprocessor">#define KFACTOR 100 // for sensibility of ball :-)</span><a name="l00463"></a>00463 <span class="preprocessor"></span><a name="l00467"></a><a class="code" href="main_8c.html#0fc8841d0fc4cafec999c0dad840e299">00467</a> <span class="keywordtype">void</span> <a class="code" href="main_8c.html#0fc8841d0fc4cafec999c0dad840e299">mmaBallTest</a> ()<a name="l00468"></a>00468 {<a name="l00469"></a>00469 uint16_t i;<a name="l00470"></a>00470 <span class="comment">// base cordinate of row and column</span><a name="l00471"></a>00471 <span class="keywordtype">int</span> row_base;<a name="l00472"></a>00472 <span class="keywordtype">int</span> col_base;<a name="l00473"></a>00473 <a name="l00474"></a>00474 <span class="comment">// variables</span><a name="l00475"></a>00475 uint8_t x = <a class="code" href="lcd_8h.html#19693eac3018d3e7800fde141921b812">LCD_WIDTH</a> / 2 - <a class="code" href="ball_8h.html#59f2c3dacc9e6102981fac70883b296e">BALL_WIDTH</a> / 2,<a name="l00476"></a>00476 y = <a class="code" href="lcd_8h.html#53a8b2a971de4b88047192655a48b651">LCD_HEIGHT</a> / 2 - <a class="code" href="ball_8h.html#63e30a0ebc174fbdc445f8c6a37138ec">BALL_HEIGHT</a> / 2;<a name="l00477"></a>00477 uint8_t ox = 0, oy = 0; <span class="comment">// coordinates in previous cycle</span><a name="l00478"></a>00478 <a class="code" href="periphery_8h.html#ee61ae8f1c2cb6699241b9779166205f">KBD_buttonPressed_t</a> buttonPressed;<a name="l00479"></a>00479 <a name="l00480"></a>00480 <a class="code" href="lcd_8c.html#745f4e24d600186db3dc2fea9b4a52d6">LCD_printf</a> (<span class="stringliteral">"calibrate MMA:"</span>);<a name="l00481"></a>00481 <span class="comment">// calibrate</span><a name="l00482"></a>00482 <span class="keywordflow">for</span> (i = 0; i < 16; i++) <a name="l00483"></a>00483 {<a name="l00484"></a>00484 <a class="code" href="mma_8c.html#4e414ec23d97c562ac55d713a3fec79d">MMA_getCoordinates</a>();<a name="l00485"></a>00485 }<a name="l00486"></a>00486 <a name="l00487"></a>00487 row_base = <a class="code" href="mma_8c.html#9ffb4611e1a296502a11a222e555833c">MMA_coordinates</a>[1];<a name="l00488"></a>00488 col_base = <a class="code" href="mma_8c.html#9ffb4611e1a296502a11a222e555833c">MMA_coordinates</a>[0];<a name="l00489"></a>00489 <a class="code" href="lcd_8c.html#745f4e24d600186db3dc2fea9b4a52d6">LCD_printf</a> (<span class="stringliteral">"OK"</span>);<a name="l00490"></a>00490 <a class="code" href="time_8c.html#9af0f4a5c28d65ca84fb763fd91e8731">mdelay</a> (500);<a name="l00491"></a>00491 <a class="code" href="lcd_8c.html#b3d3c08a4027d3e918914c1562ced027">LCD_clear</a> ();<a name="l00492"></a>00492 <span class="keywordflow">do</span><a name="l00493"></a>00493 {<a name="l00494"></a>00494 <span class="comment">// mma and ball ------------------------------------------------------------</span><a name="l00495"></a>00495 <a class="code" href="mma_8c.html#4e414ec23d97c562ac55d713a3fec79d">MMA_getCoordinates</a>();<a name="l00496"></a>00496 <a name="l00497"></a>00497 <span class="comment">// with calibrate when start</span><a name="l00498"></a>00498 y = y + (<a class="code" href="mma_8c.html#9ffb4611e1a296502a11a222e555833c">MMA_coordinates</a>[1] - row_base)/<a class="code" href="main_8c.html#efd00edb9e71d2c64da766fcacefabf2">KFACTOR</a>;<a name="l00499"></a>00499 x = x + (<a class="code" href="mma_8c.html#9ffb4611e1a296502a11a222e555833c">MMA_coordinates</a>[0] - col_base)/<a class="code" href="main_8c.html#efd00edb9e71d2c64da766fcacefabf2">KFACTOR</a>;<a name="l00500"></a>00500 <a name="l00501"></a>00501 <span class="comment">// check to exceed LCD area</span><a name="l00502"></a>00502 <span class="keywordflow">if</span>(y><a class="code" href="main_8c.html#7a946ac4b6c7418e09eed4c19d4a83fe">ROW_EXCEED_LEFT</a>) y=1;<a name="l00503"></a>00503 <span class="keywordflow">if</span>(y><a class="code" href="main_8c.html#0b5727aff394c7933d07eed87e83fc91">ROW_EXCEED_RIGHT</a>) y=110;<a name="l00504"></a>00504 <span class="keywordflow">if</span>(x><a class="code" href="main_8c.html#f0964ee9b30f1896cf166b86b8c24e45">COL_EXCEED_LEFT</a>) x=1;<a name="l00505"></a>00505 <span class="keywordflow">if</span>(x><a class="code" href="main_8c.html#e3917be7267877604aba9262b2168360">COL_EXCEED_RIGHT</a>) x=110;<a name="l00506"></a>00506 <a name="l00507"></a>00507 <span class="keywordflow">if</span> (oy != y || ox != x)<a name="l00508"></a>00508 {<a name="l00509"></a>00509 <span class="comment">//ClearBall (ox, oy);</span><a name="l00510"></a>00510 <a class="code" href="lcd_8c.html#2349e3cdd48f7a2b906feb75b3a14413">LCD_writeBall</a> (x, y);<a name="l00511"></a>00511 oy = y;<a name="l00512"></a>00512 ox = x;<a name="l00513"></a>00513 }<a name="l00514"></a>00514 <span class="comment">// -------------------------------------------------------------------------</span><a name="l00515"></a>00515 <a name="l00516"></a>00516 <span class="comment">// press center joystick button --------------------------------------------</span><a name="l00517"></a>00517 <span class="keywordflow">if</span> (P2IN & BIT6)<a name="l00518"></a>00518 {<a name="l00519"></a>00519 <a name="l00520"></a>00520 <span class="comment">// Clear LCD</span><a name="l00521"></a>00521 <a class="code" href="lcd_8c.html#b3d3c08a4027d3e918914c1562ced027">LCD_clear</a> ();<a name="l00522"></a>00522 <a name="l00523"></a>00523 <span class="comment">// calibrate</span><a name="l00524"></a>00524 <a class="code" href="mma_8c.html#4e414ec23d97c562ac55d713a3fec79d">MMA_getCoordinates</a>();<a name="l00525"></a>00525 <a name="l00526"></a>00526 <span class="comment">// Set new position</span><a name="l00527"></a>00527 row_base = <a class="code" href="mma_8c.html#9ffb4611e1a296502a11a222e555833c">MMA_coordinates</a>[1];<a name="l00528"></a>00528 col_base = <a class="code" href="mma_8c.html#9ffb4611e1a296502a11a222e555833c">MMA_coordinates</a>[0];<a name="l00529"></a>00529 }<a name="l00530"></a>00530 buttonPressed = <a class="code" href="periphery_8c.html#63c0677a7650d8b00aabded94d64693c">KBD_getButtonPressed</a> ();<a name="l00531"></a>00531 } <span class="keywordflow">while</span> (!(buttonPressed & <a class="code" href="periphery_8h.html#14dc48ed135ccdd9551d8ac9195adce3d64ccc54e9ccb336174d4ef9df161fdd">KBD_QUIT</a>));<a name="l00532"></a>00532 }<a name="l00533"></a>00533 <a name="l00537"></a><a class="code" href="main_8c.html#4bca63e2f9de43ddaeb04cc7add1d198">00537</a> <span class="keywordtype">void</span> <a class="code" href="main_8c.html#4bca63e2f9de43ddaeb04cc7add1d198">mmaRawValues</a> ()<a name="l00538"></a>00538 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -