搜索
bottom↓
回复: 4

关于C语言讨论一下 附代码

[复制链接]

出0入0汤圆

发表于 2012-12-22 21:38:58 | 显示全部楼层 |阅读模式
本帖最后由 libitao 于 2012-12-22 21:41 编辑

[size=2]struct {
        void (*fun)(void);
        char *tip;
}CmdTip[] = {
                                { Temp_function, "Please input 1-14 to select test"},
                                { Uart2_Test, "COM port ( UART2 ) test"},
                                { UsbMain, "Download file from PC via USB port"},
                                //{ comdownload, "Download file from PC via COM port"},
                                { BUZZER_PWM_Test, "Buzzer test"},
                                { RTC_Display, "Real time clock display" },
                                { Test_Adc, "ADC test" },
                                { Key_Scan_Test, "8*2 key array test"},
                                { Touch_Screen_Init, "Touchpanel test" },
                                {Test_Lcd_AT070TN83, "7.0# TFT LCD 800*480 test"},
                                {Test_Lcd_AT080TN52, "8.0# TFT LCD 800*600 test"},
                                { Test_Lcd_WXCAT43,  "4.3# TFT LCD 480*272 test"},
                                {Test_Lcd_CT35TF05,  "3.5# TFT LCD 320*240 test"},
                                { Test_IrDA_Tx, "IRDA test"},
                                { Test_Iic, "IIC EEPROM test" },
                                { PlayMusicTest, "UDA1341 play audio test"},
                                { RecordTest, "UDA1341 record audio test"},
                                { SDI_test, "SD Card write and read test"},
                                {Led_Test,"led test"},
                                { 0, 0}                                               
                        };

/************************************************************/
void KeyScanInit(void);

int Main()
{
        int i;       
       
#if 0                        //bank0 modified to RO_START  
    MMU_Init();        //MMU should be reconfigured or turned off for the debugger,
    //After downloading, MMU should be turned off for the MMU based program,such as WinCE.       
#else
    MMU_EnableICache();      
#endif                  
        SetClockDivider(1, 1);
        SetSysFclk(DFT_FCLK_VAL);
        Delay( 0 ) ;
        Port_Init();
        Isr_Init();
        Uart_Select(0);
        Uart_Init(0, UART_BAUD);
        RequestBiosTimerEvent(10, Led1Flash);        //when request, auto open bios timer
        RequestBiosTimerEvent(20, Led2Flash);
        RequestBiosTimerEvent(50, Led3Flash);
        RequestBiosTimerEvent(100, Led4Flash);
        //GPIO,UART0,PWM TIMER,NAND FLASH
        EnableModuleClock(CLOCK_UART0|CLOCK_TIMER|CLOCK_GPIO|CLOCK_NAND|CLOCK_LCD);

    Lcd_Port_Init();
    Lcd_Init();
    rLCDCON1 |= 1;         // ENVID=ON
    Lcd_ClearScr( (0x00<<11) | (0x00<<5) | (0x1f) );     //clear screen
        Beep( 2000, 2000 ) ;


        while(1)
        {
                U8 idx=0;
                puts("\nPlease select function : \n");       
                for(i=0; CmdTip.fun!=0; i++)
                        printf("%2d : %s\n", i, CmdTip.tip);
                idx = Uart_GetIntNum_GJ() ;
                {
                        (*CmdTip[idx].fun)();
                }       
        }                 


这个是某开发板的硬件测试 界面想请教一下红色字体部分的是什么意思 谢谢各位了

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2012-12-22 21:56:29 | 显示全部楼层
执行函数指针指向的函数~~~

出0入0汤圆

发表于 2012-12-22 21:59:55 | 显示全部楼层
本帖最后由 myqiang1990 于 2012-12-22 22:07 编辑

就是把结构体数组CmdTip[]里面的void (*fun)(void)成员指向的函数全部执行一遍嘛~~

出0入0汤圆

发表于 2012-12-22 22:22:06 | 显示全部楼层
先打印每个要测试功能的名字,然后利用Uart_GetIntNum_GJ() 这个函数获取你在串口上输入的数字,来决定执行哪个功能

出0入0汤圆

 楼主| 发表于 2012-12-22 23:29:08 | 显示全部楼层
本帖最后由 libitao 于 2012-12-22 23:30 编辑

谢谢两位高手 明白了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 04:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表