我正在使用PIC18,LCD等實現一個時鐘的項目,我正在使用mikroC來實現此項目。你能幫我做這個算法「將字符串向右或向左移動」
但是,我不擅長C,而且我被困在某個點。時鐘有幾個選項的菜單,使用戶設定的時間,報警,報警聲等菜單有以下幾點:
1. Set Time
2. Add Alarm
3. Select Alarm
4. Add New Tone
5. Select Tone
6. EXIT
時鐘有3個按鍵,OK
,RIGHT
和LEFT
。當時鍾開機時,它將在LCD上顯示Set Time
作爲默認值。我想添加一個功能,當我按RIGHT
按鈕時,它應該顯示Add Alarm
,但逐漸不是直接。我在菜單中有6個項目,所以我必須逐步移動12次(右側6個,左側6個)。我曾經嘗試這樣做如下:
Lcd_Out(2, 2, " set Time ");
Delay_ms(50);
Lcd_Out(2, 2, " set Time ");
Delay_ms(50);
Lcd_Out(2, 2, " set Time ");
Delay_ms(50);
Lcd_Out(2, 2, " et Time ");
Delay_ms(50);
Lcd_Out(2, 2, " t Time ");
Delay_ms(50);
Lcd_Out(2, 2, " Time ");
Delay_ms(50);
Lcd_Out(2, 2, " ime ");
Delay_ms(50);
Lcd_Out(2, 2, " me ");
Delay_ms(50);
Lcd_Out(2, 2, " e ");
Delay_ms(50);
Lcd_Out(2, 2, " ");
Delay_ms(50);
Lcd_Out(2, 2, " ");
Delay_ms(50);
Lcd_Out(2, 2, " ");
Delay_ms(50);
Lcd_Out(2, 2, " ");
Delay_ms(50);
Lcd_Out(2, 2, " A ");
Delay_ms(50);
Lcd_Out(2, 2, " Ad ");
Delay_ms(50);
Lcd_Out(2, 2, " Add ");
Delay_ms(50);
Lcd_Out(2, 2, " Add ");
Delay_ms(50);
Lcd_Out(2, 2, " Add A ");
Delay_ms(50);
Lcd_Out(2, 2, " Add Al ");
Delay_ms(50);
Lcd_Out(2, 2, " Add Ala ");
Delay_ms(50);
Lcd_Out(2, 2, " Add Alar ");
Delay_ms(50);
Lcd_Out(2, 2, " Add Alarm ");
Delay_ms(50);
Lcd_Out(2, 2, " Add Alarm ");
Delay_ms(50);
Lcd_Out(2, 2, " Add Alarm ");
這是一個運動,做我需要大量的代碼,而PIC的RAM是有限的人。那麼,你們能幫我解決這個問題嗎?
第一件事第一:**你需要一個循環**。這立即解決了您現在擁有的冗餘代碼。 – 2011-06-02 16:23:10
@Cody Gray:問題是,如何將字符串向右或向左移動? – 2011-06-02 16:29:00
我該如何開始這個問題的賞金? – 2011-06-02 18:03:11