📄 main.c
字号:
break;
}
switch( keycode )
{
case 4: // 按键:确认
delay_time=0;
switch( SCREEN )
{
case 0: Forward ( SPEED ); Start = 1; Stop = 1; // Start the car
break;
case 1: // 第一屏(选择菜单)时确认键的功能
switch(vertical)
{
case 0: SCREEN=0 ; break; //未选择任何菜单
case 1: SCREEN=10; Read12C887( setup_time ); break;//选择菜单1(时间设置)
case 2: SCREEN=20; //选择菜单2(报警设置)
alarm_range = Read12C887RAM( ALARM_RANGE );
LED_GLITTER_ACT( );
break;
case 3: SCREEN=30; DAC0datum =DAC0; DAC1datum =DAC1; break; //选择菜单3(DAC)
case 4: SCREEN=40; //选择菜单4(SPEED)
SPEED = Read12C887RAM( SPEED_RANGE ); // 取得行驶速度
SPEED1 = Read12C887RAM( SPEED1_RANGE ); // 取得转弯速度
FREQUENCY = Read12C887RAM( FREQUENCY_RANGE ); // 取得 PWM 频率
temp = Read12C887RAM ( SECTION_B_RANGE_H ); // 取得B 道区的起始位置
SECTION_BPoint = ( unsigned int )_irol_( ( unsigned int )temp , 8 );
temp = Read12C887RAM ( SECTION_B_RANGE_L );
SECTION_BPoint += temp;
temp = Read12C887RAM ( SECTION_BC_RANGE_H ); // 取得BC 中道区的起始位置
SECTION_BCPoint = ( unsigned int )_irol_( ( unsigned int )temp , 8 );
temp = Read12C887RAM ( SECTION_BC_RANGE_L );
SECTION_BCPoint += temp;
INTENSITY = Read12C887RAM( INTENSITY_RANGE ); // 取得光强度参数
break;
case 5: SCREEN=50; //选择菜单5(USB)
break;
case 6: SCREEN=60;
break; //选择菜单6(温度)
default:break;
}
confirm_down=1;
break;
//--------------------------------------------------------------------------
case 10: // 主菜单第一屏(时间设置)确认键的功能
if( time_modify ) Setup12C887(setup_time);
SCREEN=0;
modifying=0;
time_modify=0;
confirm_down=1;
break;
//--------------------------------------------------------------------------
case 20: // 主菜单第二屏 (报警设置)
Write12C887RAM(ALARM_RANGE,alarm_range);
LED_GLITTER_INACT( );
SCREEN=0;
modifying=0;
confirm_down=1;
break;//
//--------------------------------------------------------------------------
case 30: // 主菜单第三屏 (DAC设置)
if( DAC0_modify )DAConvert0( DAC0datum ); else if( DAC1_modify )DAConvert1( DAC1datum );
if( DAC0_modify&&DAC0Enable )DAC0_EN( ); if( DAC0_modify&&(!DAC0Enable) ) DAC0_NO( );
if( DAC1_modify&&DAC1Enable )DAC1_EN( ); if( DAC1_modify&&(!DAC1Enable) ) DAC1_NO( );
SCREEN=0;
modifying=0;
DAC0_modify=0; DAC1_modify=0;
confirm_down=1;
break;
//--------------------------------------------------------------------------
case 40: // 主菜单第四屏 ( SPEED )
if( SPEED_modify )
{
Write12C887RAM( SPEED_RANGE, SPEED ); // 存入行驶速度值
Write12C887RAM( SPEED1_RANGE, SPEED1 ); // 存入转弯速度值
}
if( FREQUENCY_modify )
{
Write12C887RAM( FREQUENCY_RANGE, FREQUENCY ); // 存入频率值
TH0 = FREQUENCY;
}
if( SECTION_BPoint_modify )
{
temp = ( unsigned char )_iror_( SECTION_BPoint, 8 );
Write12C887RAM( SECTION_B_RANGE_H, temp ); // 存入 B 道区的起始位置
temp = ( unsigned char )SECTION_BPoint & 0xFF;
Write12C887RAM( SECTION_B_RANGE_L, temp );
}
if( SECTION_BCPoint_modify )
{
temp = ( unsigned char )_iror_( SECTION_BCPoint, 8 );
Write12C887RAM( SECTION_BC_RANGE_H, temp ); // 存入 B 道区的起始位置
temp = ( unsigned char )SECTION_BCPoint & 0xFF;
Write12C887RAM( SECTION_BC_RANGE_L, temp );
}
if( INTENSITY_modify )
Write12C887RAM( INTENSITY_RANGE, INTENSITY ); // 存入行驶速度值
SCREEN=0;
modifying=0;
SPEED_modify=0; FREQUENCY_modify=0; SECTION_BPoint_modify=0; SECTION_BCPoint_modify=0;
confirm_down=1;
break;
//--------------------------------------------------------------------------
case 50: // 主菜单第五屏 (USB)
SCREEN=0; FileProcess( );
modifying=0;
confirm_down=1;
break;
case 51: // 第51屏
SCREEN=0;
modifying=0;
confirm_down=1;
break;
case 52: // 第52屏
SCREEN=0;
modifying=0;
confirm_down=1;
break;
case 53: // 第53屏
SCREEN=0;
modifying=0;
confirm_down=1;
break;
//--------------------------------------------------------------------------
case 60: // 主菜单第六屏
SCREEN=0;
modifying=0;
confirm_down=1;
break;
//--------------------------------------------------------------------------
case 70: // 主菜单第七屏
SCREEN=0;
modifying=0;
confirm_down=1;
break;
default:break;
}
vertical=horizontal=0;
break;
case 7: // 按键:上
delay_time = 0;
switch( SCREEN )
{
case 0: Forward ( SPEED ); break;
case 1: if( vertical<2 )vertical=6; else vertical--; break;
case 10: up=1;down=0; vertical++; break; // up=1,加
case 20: up=1;down=0; vertical++; break;
case 30: up=1;down=0; vertical++; break;
case 40: up=1;down=0; vertical++; break;
case 50: up=1;down=0; vertical++; break;
case 60: up=1;down=0; vertical++; break;
case 31: if( vertical<2 )vertical=3; else vertical--; break;
default:break;
}
break;
case 2: // 按键:下
delay_time = 0;
switch( SCREEN )
{
case 0: Backward( SPEED ); break;
case 1: if( vertical<6 )vertical++; else vertical=1; break;
case 10: down=1;up=0; vertical--; break; // down=1,减
case 20: down=1;up=0; vertical--; break;
case 30: down=1;up=0; vertical--; break;
case 40: down=1;up=0; vertical--; break;
case 50: down=1;up=0; vertical--; break;
case 60: down=1;up=0; vertical--; break;
case 31: if( vertical<3 )vertical++; else vertical=1; break;
default:break;
}
break;
case 5: // 按键:左
delay_time = 0;
switch( SCREEN )
{
case 0:
TurnLeft ( SPEED1 );
break;
case 1: switch( vertical )
{
case 0: vertical = 6; break;
case 1: vertical = 6; break;
case 2: vertical = 4; break;
case 3: vertical = 5; break;
case 4: vertical = 1; break;
case 5: vertical = 2; break;
case 6: vertical = 3; break;
default:break;
}
break;
case 10: if( horizontal<2 ) horizontal=13; else horizontal--; break;
case 20: if( horizontal<2 ) horizontal=9 ; else horizontal--; break;
case 30: if( horizontal<2 ) horizontal=10; else horizontal--; break;
case 40: if( horizontal<2 ) horizontal=22; else horizontal--; break;
case 50: if( horizontal<2 ) horizontal=10; else horizontal--; break;
case 60: up=1;down=0; vertical++; break;
default: break;
}
break;
case 3: // 按键:右
delay_time = 0;
switch( SCREEN )
{
case 0:
TurnRight( SPEED1 );
break;
case 1: switch( vertical )
{
case 0: vertical = 1; break;
case 1: vertical = 4; break;
case 2: vertical = 5; break;
case 3: vertical = 6; break;
case 4: vertical = 2; break;
case 5: vertical = 3; break;
case 6: vertical = 1; break;
default:vertical = 0; break;
}
break;
case 10: if( horizontal<13 ) horizontal++; else horizontal=1; break;
case 20: if( horizontal<9 ) horizontal++; else horizontal=1; break;
case 30: if( horizontal<10 ) horizontal++; else horizontal=1; break;
case 40: if( horizontal<22 ) horizontal++; else horizontal=1; break;
case 50: if( horizontal<10 ) horizontal++; else horizontal=1; break;
case 60: up=0;down=1; vertical++;
break;
default: break;
}
break;
case 1: // 按键:修改
delay_time = 0;
vertical = horizontal = 0;
switch( SCREEN )
{
case 0 : // 进入修改状态
SCREEN=1;
modifying=1;
confirm_down=1;
break;
case 1 : break;
case 10: time_modify = 0; break;
case 20: alarm_modify = 0; break;
case 30: DAC0_modify = 0; DAC1_modify = 0; break;
case 40: SPEED_modify = 0; break;
case 50: break;
case 60: break;
default: break;
}
break;
case 6: // 按键:返回
delay_time = 0;
flag=!flag; CarStop( ); Start = 0; Stop = 0;
/* if ( flag )
{
// LED_OUT_ACT( ); // Enable LED
// ALARM_ACT( ); // Enable Alarm
LED_OUT_INACT( ); // Disable LED
ALARM_INACT( ); // Disable Alarm
}
else
{
LED_OUT_INACT( ); // Disable LED
ALARM_INACT( ); // Disable Alarm
}
*/ break;
default: break;
}
keycode = 0;
//---------------------------------------------------------------
// 超过15秒无修改,返回初始屏
if( modifying )
{
time_now = time_buf[0]%10;
if( time_now^time_old ) delay_time++;
time_old = time_now;
if( delay_time>15 ) // 模拟按下确认键, 不进行任何修改
{
vertical=horizontal=0;
SCREEN = 0;
confirm_down = 1;
modifying = 0;
delay_time = 0;
LED_OUT_INACT( ); // Disable LED
ALARM_INACT( ); // Disable Alarm
}
}
//---------------------------------------------------------------
// 一秒钟所计数数目
if( time_now == time_old1 ) second_count++;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -