Помогите с выводом информации на семи сегментный дисплей
- Войдите на сайт для отправки комментариев
Чт, 14/01/2021 - 21:33
Доброго времени суток! Я ни разу не программист, только начинаю все это дело "курить"
Вообщем есть проц risc на нем крутится софт, работает вообщем все как нужно. Но хотелось бы что бы при подключении флешки или усб или сд на семисегментник выводилась надпись типа подключенного накопителя "SD" или "USB" на пару секунд и потом пропадала.
В коде есть функция вызывающая свечение светодиодов USB и SD
void led7_show_dev(u8 dev)
{
if((dev == SD0_DEVICE)||(dev == SD1_DEVICE))
{
LED_STATUS |= LED_SD;
}
else if(dev == USB_DEVICE)
{
LED_STATUS |= LED_USB;
}
}
Так как мне это сделать, понимаю что можно, но как? В коде есть возможность использовать
led7_show_string((u8 *)"текст"); и led7_show_string((u8 *)other_string[1]); таблицы с текстом.
Почитайте как правильно вставлять текст программы.
Кроме того представьте программу полностью - по тому огрызку, что Вы представили ничего сказать нельзя.
Вообщем есть проц risc
А еще размытее не пробовал? Ну там "есть проц из кремния"?
Почитайте как правильно вставлять текст программы.
Кроме того представьте программу полностью - по тому огрызку, что Вы представили ничего сказать нельзя.
Почитал, а как исправить сообщения - не вижу кнопки.
Прдедставить всю программу - не получится, она занимает 40 мб, и состоит из более чем 600 файлов. Свой компилятор, свои процессоры, свой SDK с библиотеками.
/***************************************************************************** @file led7_drv.c @brief 7SEG_12PIN STANDARD LED DISPLAY @date 2021-01-03 19:15 @note AC690X SDK V2012_P4 *****************************************************************************/ #include "ui/ui_api.h" #if UI_ENABLE #include "ui/ui_common.h" #include "ui/led/led7_drv.h" #include "fm_radio.h" #include "dec/decoder_phy.h" #include "music_ui.h" #include "music.h" #include "timer.h" #include "key_drv/key.h" #include "file_operate/file_op.h" //#include "play_file.h" #include "dac/dac.h" #include "rtc_setting.h" #include "sys_detect.h" #if REC_EN #include "encode/encode.h" #endif LED7_VAR led7_var; const u8 LED_NUMBER[10] = { /*0*/ (u8)(LED_A | LED_B | LED_C | LED_D | LED_E | LED_F), /*1*/ (u8)(LED_B | LED_C), /*2*/ (u8)(LED_A | LED_B | LED_D | LED_E | LED_G), /*3*/ (u8)(LED_A | LED_B | LED_C | LED_D | LED_G), /*4*/ (u8)(LED_B | LED_C | LED_F | LED_G), /*5*/ (u8)(LED_A | LED_C | LED_D | LED_F | LED_G), /*6*/ (u8)(LED_A | LED_C | LED_D | LED_E | LED_F | LED_G), /*7*/ (u8)(LED_A | LED_B | LED_C), /*8*/ (u8)(LED_A | LED_B | LED_C | LED_D | LED_E | LED_F | LED_G), /*9*/ (u8)(LED_A | LED_B | LED_C | LED_D | LED_F | LED_G), }; const u8 LED_LARGE_LETTER[26] = { 0x77,0x40,0x39,0x3f,0x79,///<ABCDE 0x71,0x40,0x76,0x06,0x40,///<FGHIJ 0x40,0x38,0x40,0x37,0x3f,///<KLMNO 0x73,0x40,0x50,0x6d,0x78,///<PQRST 0x3e,0x3e,0x40,0x76,0x40,///<UVWXY 0x40///<Z }; const u8 LED_SMALL_LETTER[26] = { 0x77,0x7c,0x58,0x5e,0x79,///<abcde 0x71,0x40,0x40,0x40,0x40,///<fghij 0x40,0x38,0x40,0x54,0x5c,///<klmno 0x73,0x67,0x50,0x40,0x78,///<pqrst 0x3e,0x3e,0x40,0x40,0x40,///<uvwxy 0x40///<z }; const u8 led_7[36][2] = ///< 新7断数码管转 { {4,0},//1A {5,0},//1B {6,0},//1C {7,0},//1D {8,0},//1E {9,0},//1F {10,0},//1G {4,1},//2A {5,1},//2B {6,1},//2C {7,1},//2D {8,1},//2E {9,1},//2F {10,1},//2G {4,2},//3A {5,2},//3B {6,2},//3C {7,2},//3D {8,2},//3E {9,2},//3F {10,2},//3G {4,3},//4A {5,3},//4B {6,3},//4C {7,3},//4D {8,3},//4E {9,3},//4F {10,3},//4G {0,0},//LED_PLAY {0,0},//LED_PAUSE {0,0},//LED_USB {0,0},//SD {11,1},//: {0,0},//MHz {11,2},//. {0,0},//MP3 }; const u8 bit_table[8] = { 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80, }; const u8 playmodestr[][5] = { " ALL", " dev", "Fold", " ONE", " rAn", }; const u8 menu_string[][5] = { " HI ", "boot", " bt ", " PC ", " UP ", " dN ", " AUX", "-AL-" }; const u8 other_string[][5]= { "Eq ", "V ", "P ", " NOP", " rec", }; /*----------------------------------------------------------------------------*/ /**@brief Music模式 设备显示 @param void @return void @author Change.tsai @note void led7_show_dev(void) */ /*----------------------------------------------------------------------------*/ void led7_show_dev(u8 dev) { if((dev == SD0_DEVICE)||(dev == SD1_DEVICE)) { LED_STATUS |= LED_SD; } else if(dev == USB_DEVICE) { LED_STATUS |= LED_USB; } } /*----------------------------------------------------------------------------*/ /**@brief led7_drv 状态位缓存清除函数 @param void @return void @author Change.tsai @note void led7_clear_icon(void) */ /*----------------------------------------------------------------------------*/ void led7_clear_icon(void) { led7_var.bFlashChar = 0; led7_var.bFlashIcon = 0; led7_var.bShowBuff[4] = 0; } /*----------------------------------------------------------------------------*/ /**@brief led7_drv 显示坐标设置 @param x:显示横坐标 @return void @author Change.tsai @note void led7_setX(u8 X) */ /*----------------------------------------------------------------------------*/ void led7_setX(u8 X) { led7_var.bCoordinateX = X; } /*----------------------------------------------------------------------------*/ /**@brief LED 清屏函数 @param void @return void @author Change.tsai @note void led7_show_null(void) */ /*----------------------------------------------------------------------------*/ void led7_show_null(void) { led7_clear_icon(); led7_var.bShowBuff[0] = 0; led7_var.bShowBuff[1] = 0; led7_var.bShowBuff[2] = 0; led7_var.bShowBuff[3] = 0; } /*----------------------------------------------------------------------------*/ /**@brief led7_drv 扫描函数 @param void @return void @author Change.tsai @note void led7_init(void) */ /*----------------------------------------------------------------------------*/ void led7_init(void) { led7_clear(); s32 ret; ret = timer_reg_isr_fun(timer0_hl,1,led7_scan,NULL); if(ret != TIMER_NO_ERR) { printf("led7_scan err = %x\n",ret); } } /*----------------------------------------------------------------------------*/ /**@brief led7_drv 单个字符显示函数 @param chardata:显示字符 @return void @author Change.tsai @note void led7_show_char(u8 chardata) */ /*----------------------------------------------------------------------------*/ void led7_show_char(u8 chardata) { //必须保证传入的参数符合范围,程序不作判断 //if ((chardata < ' ') || (chardata > '~') || (led7_var.bCoordinateX > 4)) //{ // return; //} if ((chardata >= '0') && (chardata <= '9')) { led7_var.bShowBuff[led7_var.bCoordinateX++] = LED_NUMBER[chardata - '0']; } else if ((chardata >= 'a') && (chardata <= 'z')) { led7_var.bShowBuff[led7_var.bCoordinateX++] = LED_SMALL_LETTER[chardata - 'a']; } else if ((chardata >= 'A') && (chardata <= 'Z')) { led7_var.bShowBuff[led7_var.bCoordinateX++] = LED_LARGE_LETTER[chardata - 'A']; } else if (chardata == ':') { LED_STATUS |= LED_2POINT; } else if (chardata == ' ') { led7_var.bShowBuff[led7_var.bCoordinateX++] = 0; } else //if (chardata == '-') //不可显示 { led7_var.bShowBuff[led7_var.bCoordinateX++] = BIT(6); } } /*----------------------------------------------------------------------------*/ /**@brief led7_drv 字符串显示函数 @param *str:字符串的指针 offset:显示偏移量 @return void @author Change.tsai @note void led7_show_string(u8 *str) */ /*----------------------------------------------------------------------------*/ void led7_show_string(u8 *str) { while (0 != *str) { led7_show_char(*str++); } } /*----------------------------------------------------------------------------*/ /** @brief: @param: @return: @author: @note: */ /*----------------------------------------------------------------------------*/ void led7_show_string_menu(u8 menu) { if(menu >= (sizeof(menu_string)/5)) { printf("*strid(%d) is over!\n",menu); } else { led7_show_string((u8 *)menu_string[menu]); } } void led7_show_linin_main(u8 menu) { led7_show_string_menu(menu); #if REC_EN RECORD_OP_API * rec_var_p; REC_CTL * rec_ctl_var; rec_var_p = *(RECORD_OP_API **)UI_var.ui_buf_adr; if((UI_var.ui_buf_adr)&&(rec_var_p)) { rec_ctl_var = rec_var_p->rec_ctl; LED_STATUS &= ~(LED_PLAY | LED_PAUSE); LED_STATUS &= ~(LED_SD|LED_USB); if((menu == MENU_AUX_MAIN)||(menu == MENU_BT_MAIN)) { if((rec_ctl_var)&&(ENC_STOP !=rec_ctl_var->enable)) { if (ENC_STAR == rec_ctl_var->enable) LED_STATUS |= LED_PLAY; else if(ENC_PAUS == rec_ctl_var->enable) LED_STATUS |= LED_PAUSE; led7_show_dev(rec_ctl_var->curr_device); } } } #endif } /*----------------------------------------------------------------------------*/ /**@brief Music 播放文件号显示函数 @param void @return void @author Change.tsai @note void led7_show_filenumber(void) */ /*----------------------------------------------------------------------------*/ void led7_show_filenumber(void) { MUSIC_DIS_VAR *music_var; music_var = (MUSIC_DIS_VAR*)UI_var.ui_buf_adr; if(music_var) { /*Music File Number info*/ //printf("ui_music.ui_play_file_num = %u----\n",ui_music.ui_play_file_num); itoa4(music_var->ui_curr_file); led7_show_string((u8 *)bcd_number); } } /*----------------------------------------------------------------------------*/ /**@brief 红外输入文件号显示函数 @param void @return void @author Change.tsai @note void led7_show_IR_number(void) */ /*----------------------------------------------------------------------------*/ void led7_show_IR_number(s32 arg) { u16 ir_num; ir_num = (u16)(arg&0xffff); /*IR File Number info*/ itoa4(ir_num); led7_show_string((u8 *)bcd_number); } /*----------------------------------------------------------------------------*/ /**@brief Music模式 显示界面 @param void @return void @author Change.tsai @note void led7_show_music_main(void) */ /*----------------------------------------------------------------------------*/ void led7_show_music_main(void) { //led7_show_string((u8*)"MUSI"); u32 play_time; MUSIC_DIS_VAR *music_var; music_var = (MUSIC_DIS_VAR*)UI_var.ui_buf_adr; if(music_var) { /*Music Play time info*/ play_time = music_var->play_time; itoa2(play_time/60); led7_show_string((u8 *)bcd_number); itoa2(play_time%60); led7_show_string((u8 *)bcd_number); /* led7_show_dev(); */ led7_show_dev(music_var->ui_curr_device); LED_STATUS |= LED_2POINT | LED_MP3; if (*music_var->ui_curr_statu == DECODER_PLAY) { LED_STATUS |= LED_PLAY; LED_STATUS &= ~LED_PAUSE; led7_var.bFlashIcon |= LED_2POINT; } else if (*music_var->ui_curr_statu == DECODER_PAUSE) { LED_STATUS &= ~LED_PLAY; LED_STATUS |= LED_PAUSE; } // // if(mute) // { // led7_var.bFlashIcon |= LED_MP3; // led7_var.bFlashChar = 0x0f; // } // else // { // led7_var.bFlashIcon &= ~LED_MP3; // led7_var.bFlashChar = 0x00; // } } } /*----------------------------------------------------------------------------*/ /**@brief EQ显示函数 @param void @return void @author Change.tsai @note void led7_show_eq(s32 arg) */ /*----------------------------------------------------------------------------*/ void led7_show_bt_main(void) { static u8 cnt = 0 ; if(btstatus == 1) { led7_show_string((u8 *)"bLUE"); } else { switch(cnt) { case 0: led7_show_string((u8 *)" b"); break ; case 1: led7_show_string((u8 *)" bL"); break ; case 2: led7_show_string((u8 *)" bLU"); break ; case 3: led7_show_string((u8 *)"bLUE"); break ; } cnt ++ ; if(cnt > 3) { cnt =0 ; } } } /*----------------------------------------------------------------------------*/ /**@brief Music模式 显示界面 @param void @return void @author Change.tsai @note void led7_show_music_main(void) */ /*----------------------------------------------------------------------------*/ void led7_show_idle_main(void) { static u8 cnt = 0 ; //led7_show_string((u8 *)" OFF"); //os_time_dly(50) ; led7_show_string((u8 *)" OFF"); } void led7_show_idle_off(void) { static u8 cnt = 0 ; //led7_show_string((u8 *)" OFF"); //os_time_dly(50) ; led7_show_string((u8 *)" "); } /*-----------------------------------------------------------------------------*/ void led7_show_eq(s32 arg) { u8 eq_cnt; eq_cnt = (u8)arg; led7_show_string((u8 *)other_string[0]); led7_show_char(eq_cnt%10 + '0'); } /*----------------------------------------------------------------------------*/ /**@brief 循环模式显示函数 @param void @return void @author Change.tsai @note void led7_show_playmode(s32 arg) */ /*----------------------------------------------------------------------------*/ void led7_show_playmode(s32 arg) { u8 pm_cnt; pm_cnt = (u8)arg; led7_show_string((u8 *)&playmodestr[pm_cnt-FOP_MAX-1][0]); } /*----------------------------------------------------------------------------*/ /**@brief 音量显示函数 @param void @return void @author Change.tsai @note void led7_show_volume(s32 vol) */ /*----------------------------------------------------------------------------*/ void led7_show_volume(s32 vol) { u8 tmp_vol; tmp_vol = (u8)vol; led7_show_string((u8 *)other_string[1]); itoa2(tmp_vol); led7_show_string((u8 *)bcd_number); } /*----------------------------------------------------------------------------*/ /**@brief FM 模式主界面 @param void @return void @author Change.tsai @note void led7_show_fm_main(void) */ /*----------------------------------------------------------------------------*/ void led7_show_fm_main(void) { /*FM - Frequency*/ #if 1 FM_MODE_VAR * fm_var; if(!UI_var.ui_buf_adr) return; fm_var = *(FM_MODE_VAR **)UI_var.ui_buf_adr; if(fm_var) { itoa4(fm_var->wFreq); if (fm_var->wFreq <= 999) bcd_number[0] = ' '; LED_STATUS |= LED_DOT; led7_show_string((u8 *)bcd_number); LED_STATUS |= LED_MHZ; #if REC_EN RECORD_OP_API * rec_var_p; REC_CTL * rec_ctl_var; if((fm_var->fm_rec_op)&&(*(RECORD_OP_API **)(fm_var->fm_rec_op))) { rec_var_p = *(RECORD_OP_API **)fm_var->fm_rec_op; rec_ctl_var = rec_var_p->rec_ctl; if((rec_ctl_var)&&(ENC_STOP != rec_ctl_var->enable)) { LED_STATUS &= ~(LED_PLAY | LED_PAUSE); LED_STATUS &= ~(LED_SD|LED_USB); /* led7_show_dev(); */ led7_show_dev(rec_ctl_var->curr_device); if (ENC_STAR == rec_ctl_var->enable) LED_STATUS |= LED_PLAY; else if(ENC_PAUS == rec_ctl_var->enable) LED_STATUS |= LED_PAUSE; } } #endif } #endif // 0 } /*----------------------------------------------------------------------------*/ /**@brief FM 模式主界面 @param void @return void @author Change.tsai @note void led7_show_fm_station(void) */ /*----------------------------------------------------------------------------*/ void led7_show_fm_station(void) { // /*FM - Station*/ #if 1 FM_MODE_VAR * fm_var; if(!UI_var.ui_buf_adr) return; fm_var = *(FM_MODE_VAR **)UI_var.ui_buf_adr; if(fm_var) { led7_show_string((u8 *)other_string[2]); itoa2(fm_var->wFreChannel); led7_show_string((u8 *)bcd_number); } #endif } #if 1 //RTC_CLK_EN /*----------------------------------------------------------------------------*/ /**@brief RTC 显示界面 @param void @return void @author Change.tsai @note void led7_show_RTC_main(void) */ /*----------------------------------------------------------------------------*/ void led7_show_RTC_main(void) { RTC_SETTING * rtc_var; RTC_TIME *ui_time; rtc_var = (RTC_SETTING *)UI_var.ui_buf_adr; if(rtc_var) { ui_time = rtc_var->calendar_set.curr_rtc_time; itoa2(ui_time->bHour); led7_show_string((u8 *)bcd_number); itoa2(ui_time->bMin); led7_show_string((u8 *)bcd_number); led7_var.bFlashIcon |= LED_2POINT; LED_STATUS |= LED_2POINT; if(rtc_var->rtc_set_mode == RTC_SET_MODE) { if(rtc_var->calendar_set.coordinate == COORDINATE_MIN) led7_var.bFlashChar = BIT(0)|BIT(1); else led7_var.bFlashChar = BIT(2)|BIT(3); } else led7_var.bFlashChar = 0; } } /*----------------------------------------------------------------------------*/ /**@brief Alarm 显示界面 @param void @return void @author Change.tsai @note void led7_show_alarm(void) */ /*----------------------------------------------------------------------------*/ #if 1 //RTC_ALM_EN void led7_show_alarm(void) { RTC_SETTING * rtc_var; RTC_TIME *ui_time; rtc_var = (RTC_SETTING *)UI_var.ui_buf_adr; if(rtc_var) { puts("led7_show_alarm\n"); ui_time = rtc_var->alarm_set.curr_alm_time; itoa2(ui_time->bHour); led7_show_string((u8 *)bcd_number); itoa2(ui_time->bMin); led7_show_string((u8 *)bcd_number); LED_STATUS |= LED_2POINT; if(rtc_var->rtc_set_mode == ALM_SET_MODE) { if(rtc_var->alarm_set.coordinate == COORDINATE_MIN) led7_var.bFlashChar = BIT(0)|BIT(1); else led7_var.bFlashChar = BIT(2)|BIT(3); } /*Alarm info - Switch On/Off*/ if (rtc_var->alarm_set.alarm_sw) { LED_STATUS |= LED_PLAY; } else { LED_STATUS |= LED_PAUSE; } } } #endif #endif #if REC_EN /*----------------------------------------------------------------------------*/ /**@brief REC 显示界面 @param void @return void @note void led7_show_rec_start(void) */ /*----------------------------------------------------------------------------*/ static void led7_show_rec_start(REC_CTL * rec_ctl_var) { u32 rec_time; // LED_STATUS &= ~(LED_PLAY | LED_PAUSE); // if(rec_ctl_var) { rec_time = rec_ctl_var->file_info.enc_time_cnt; itoa2(rec_time/60); led7_show_string((u8 *)bcd_number); itoa2(rec_time%60); led7_show_string((u8 *)bcd_number); /* led7_show_dev(); */ led7_show_dev(rec_ctl_var->curr_device); LED_STATUS |= LED_2POINT; //| LED_PLAY; if (ENC_STAR == rec_ctl_var->enable) LED_STATUS |= LED_PLAY; else if (ENC_PAUS == rec_ctl_var->enable) LED_STATUS |= LED_PAUSE; } } /*----------------------------------------------------------------------------*/ /**@brief REC 显示界面 @param void @return void @note void led7_show_rec_main(void) */ /*----------------------------------------------------------------------------*/ void led7_show_rec_main(void) { RECORD_OP_API * rec_var_p; REC_CTL * rec_ctl_var; LED_STATUS &= ~(LED_PLAY | LED_PAUSE); LED_STATUS &= ~LED_2POINT; //| LED_PLAY; LED_STATUS &= ~(LED_SD|LED_USB); if(UI_var.ui_buf_adr) { rec_var_p = *(RECORD_OP_API **)UI_var.ui_buf_adr; if(rec_var_p) { rec_ctl_var = rec_var_p->rec_ctl; if((rec_ctl_var)&&(ENC_STOP != rec_ctl_var->enable)) { led7_show_rec_start(rec_ctl_var); return; } } } led7_show_string((u8 *)other_string[4]); } #endif void LED_drive7(void) { u8 k,i,j,temp; k=0; led7_var.bShowBuff1[0]=0; led7_var.bShowBuff1[1]=0; led7_var.bShowBuff1[2]=0; led7_var.bShowBuff1[3]=0; led7_var.bShowBuff1[4]=0; led7_var.bShowBuff1[5]=0; led7_var.bShowBuff1[6]=0; led7_var.bShowBuff1[7]=0; led7_var.bShowBuff1[8]=0; led7_var.bShowBuff1[9]=0; led7_var.bShowBuff1[10]=0; led7_var.bShowBuff1[11]=0; led7_var.bShowBuff1[12]=0; for(i=0;i<5;i++) { temp = led7_var.bShowBuff[i]; if (get_sys_halfsec()) { if ((led7_var.bFlashIcon) && (i == 4)) { temp = LED_STATUS & (~led7_var.bFlashIcon); } else if (led7_var.bFlashChar & BIT(i)) { temp = 0x0; } } for(j=0;j<7;j++) { if(temp & bit_table[j]) { led7_var.bShowBuff1[led_7[k][0]] |= bit_table[led_7[k][1]]; } k++; } if(j == 7) { if(temp & bit_table[j]) led7_var.bShowBuff1[led_7[35][0]] |= bit_table[led_7[35][1]]; } } } /*----------------------------------------------------------------------------*/ /**@brief LED清屏函数 @param x:显示横坐标 @return void @author Change.tsai @note void led7_clear(void) */ /*----------------------------------------------------------------------------*/ void led7_clear(void) { LEDN_PORT0_OUT &= ~(BIT(LEDN_S0_BIT)); LEDN_PORT0_DIR |= (BIT(LEDN_S0_BIT)); LEDN_PORT0_PU &= ~(BIT(LEDN_S0_BIT)); LEDN_PORT0_PD &= ~(BIT(LEDN_S0_BIT)); LEDN_PORT0_HD &= ~(BIT(LEDN_S0_BIT)); LEDN_PORT1_OUT &= ~(BIT(LEDN_S1_BIT)); LEDN_PORT1_DIR |= (BIT(LEDN_S1_BIT)); LEDN_PORT1_PU &= ~(BIT(LEDN_S1_BIT)); LEDN_PORT1_PD &= ~(BIT(LEDN_S1_BIT)); LEDN_PORT1_HD &= ~(BIT(LEDN_S1_BIT)); LEDN_PORT2_OUT &= ~(BIT(LEDN_S2_BIT)); LEDN_PORT2_DIR |= (BIT(LEDN_S2_BIT)); LEDN_PORT2_PU &= ~(BIT(LEDN_S2_BIT)); LEDN_PORT2_PD &= ~(BIT(LEDN_S2_BIT)); LEDN_PORT2_HD &= ~(BIT(LEDN_S2_BIT)); LEDN_PORT3_OUT &= ~(BIT(LEDN_S3_BIT)); LEDN_PORT3_DIR |= (BIT(LEDN_S3_BIT)); LEDN_PORT3_PU &= ~(BIT(LEDN_S3_BIT)); LEDN_PORT3_PD &= ~(BIT(LEDN_S3_BIT)); LEDN_PORT3_HD &= ~(BIT(LEDN_S3_BIT)); LEDN_PORT4_OUT &= ~(BIT(LEDN_S4_BIT)); LEDN_PORT4_DIR |= (BIT(LEDN_S4_BIT)); LEDN_PORT4_PU &= ~(BIT(LEDN_S4_BIT)); LEDN_PORT4_PD &= ~(BIT(LEDN_S4_BIT)); LEDN_PORT4_HD &= ~(BIT(LEDN_S4_BIT)); LEDN_PORT5_OUT &= ~(BIT(LEDN_S5_BIT)); LEDN_PORT5_DIR |= (BIT(LEDN_S5_BIT)); LEDN_PORT5_PU &= ~(BIT(LEDN_S5_BIT)); LEDN_PORT5_PD &= ~(BIT(LEDN_S5_BIT)); LEDN_PORT5_HD &= ~(BIT(LEDN_S5_BIT)); LEDN_PORT6_OUT &= ~(BIT(LEDN_S6_BIT)); LEDN_PORT6_DIR |= (BIT(LEDN_S6_BIT)); LEDN_PORT6_PU &= ~(BIT(LEDN_S6_BIT)); LEDN_PORT6_PD &= ~(BIT(LEDN_S6_BIT)); LEDN_PORT6_HD &= ~(BIT(LEDN_S6_BIT)); LEDN_PORT7_OUT &= ~(BIT(LEDN_S7_BIT)); LEDN_PORT7_DIR |= (BIT(LEDN_S7_BIT)); LEDN_PORT7_PU &= ~(BIT(LEDN_S7_BIT)); LEDN_PORT7_PD &= ~(BIT(LEDN_S7_BIT)); LEDN_PORT7_HD &= ~(BIT(LEDN_S7_BIT)); LEDN_PORT8_OUT &= ~(BIT(LEDN_S8_BIT)); LEDN_PORT8_DIR |= (BIT(LEDN_S8_BIT)); LEDN_PORT8_PU &= ~(BIT(LEDN_S8_BIT)); LEDN_PORT8_PD &= ~(BIT(LEDN_S8_BIT)); LEDN_PORT8_HD &= ~(BIT(LEDN_S8_BIT)); LEDN_PORT9_OUT &= ~(BIT(LEDN_S9_BIT)); LEDN_PORT9_DIR |= (BIT(LEDN_S9_BIT)); LEDN_PORT9_PU &= ~(BIT(LEDN_S9_BIT)); LEDN_PORT9_PD &= ~(BIT(LEDN_S9_BIT)); LEDN_PORT9_HD &= ~(BIT(LEDN_S9_BIT)); LEDN_PORT10_OUT &= ~(BIT(LEDN_S10_BIT)); LEDN_PORT10_DIR |= (BIT(LEDN_S10_BIT)); LEDN_PORT10_PU &= ~(BIT(LEDN_S10_BIT)); LEDN_PORT10_PD &= ~(BIT(LEDN_S10_BIT)); LEDN_PORT10_HD &= ~(BIT(LEDN_S10_BIT)); LEDN_PORT11_OUT &= ~(BIT(LEDN_S11_BIT)); LEDN_PORT11_DIR |= (BIT(LEDN_S11_BIT)); LEDN_PORT11_PU &= ~(BIT(LEDN_S11_BIT)); LEDN_PORT11_PD &= ~(BIT(LEDN_S11_BIT)); LEDN_PORT11_HD &= ~(BIT(LEDN_S11_BIT)); LEDN_PORT12_OUT &= ~(BIT(LEDN_S12_BIT)); LEDN_PORT12_DIR |= (BIT(LEDN_S12_BIT)); LEDN_PORT12_PU &= ~(BIT(LEDN_S12_BIT)); LEDN_PORT12_PD &= ~(BIT(LEDN_S12_BIT)); LEDN_PORT12_HD &= ~(BIT(LEDN_S12_BIT)); } /*----------------------------------------------------------------------------*/ /**@brief LED扫描函数 @param void @return void @author Change.tsai @note void led7_scan(void *param) */ /*----------------------------------------------------------------------------*/ void led7_scan(void *param) { static u8 cnt; u8 seg; LED_drive7(); seg = led7_var.bShowBuff1[cnt]; led7_clear(); switch(cnt) { case 0: LEDN_PORT0_OUT |= BIT(LEDN_S0_BIT); LEDN_PORT0_HD |= BIT(LEDN_S0_BIT); LEDN_PORT0_DIR &= ~BIT(LEDN_S0_BIT); break; case 1: LEDN_PORT1_OUT |= BIT(LEDN_S1_BIT); LEDN_PORT1_HD |= BIT(LEDN_S1_BIT); LEDN_PORT1_DIR &= ~BIT(LEDN_S1_BIT); break; case 2: LEDN_PORT2_OUT |= BIT(LEDN_S2_BIT); LEDN_PORT2_HD |= BIT(LEDN_S2_BIT); LEDN_PORT2_DIR &= ~BIT(LEDN_S2_BIT); break; case 3: LEDN_PORT3_OUT |= BIT(LEDN_S3_BIT); LEDN_PORT3_HD |= BIT(LEDN_S3_BIT); LEDN_PORT3_DIR &= ~BIT(LEDN_S3_BIT); break; case 4: LEDN_PORT4_OUT |= BIT(LEDN_S4_BIT); LEDN_PORT4_HD |= BIT(LEDN_S4_BIT); LEDN_PORT4_DIR &= ~BIT(LEDN_S4_BIT); break; case 5: LEDN_PORT5_OUT |= BIT(LEDN_S5_BIT); LEDN_PORT5_HD |= BIT(LEDN_S5_BIT); LEDN_PORT5_DIR &= ~BIT(LEDN_S5_BIT); break; case 6: LEDN_PORT6_OUT |= BIT(LEDN_S6_BIT); LEDN_PORT6_HD |= BIT(LEDN_S6_BIT); LEDN_PORT6_DIR &= ~BIT(LEDN_S6_BIT); break; case 7: LEDN_PORT7_OUT |= BIT(LEDN_S7_BIT); LEDN_PORT7_HD |= BIT(LEDN_S7_BIT); LEDN_PORT7_DIR &= ~BIT(LEDN_S7_BIT); break; case 8: LEDN_PORT8_OUT |= BIT(LEDN_S8_BIT); LEDN_PORT8_HD |= BIT(LEDN_S8_BIT); LEDN_PORT8_DIR &= ~BIT(LEDN_S8_BIT); break; case 9: LEDN_PORT9_OUT |= BIT(LEDN_S9_BIT); LEDN_PORT9_HD |= BIT(LEDN_S9_BIT); LEDN_PORT9_DIR &= ~BIT(LEDN_S9_BIT); break; case 10: LEDN_PORT10_OUT |= BIT(LEDN_S10_BIT); LEDN_PORT10_HD |= BIT(LEDN_S10_BIT); LEDN_PORT10_DIR &= ~BIT(LEDN_S10_BIT); break; case 11: LEDN_PORT11_OUT |= BIT(LEDN_S11_BIT); LEDN_PORT11_HD |= BIT(LEDN_S11_BIT); LEDN_PORT11_DIR &= ~BIT(LEDN_S11_BIT); break; case 12: LEDN_PORT12_OUT |= BIT(LEDN_S12_BIT); LEDN_PORT12_HD |= BIT(LEDN_S12_BIT); LEDN_PORT12_DIR &= ~BIT(LEDN_S12_BIT); break; default : break; } if(seg & BIT(0)) { LEDN_PORT0_OUT &= ~BIT(LEDN_S0_BIT); /// LEDN_PORT0_HD |= BIT(LEDN_S0_BIT); LEDN_PORT0_DIR &= ~BIT(LEDN_S0_BIT); } if(seg & BIT(1)) { LEDN_PORT1_OUT &= ~BIT(LEDN_S1_BIT); /// LEDN_PORT1_HD |= BIT(LEDN_S1_BIT); LEDN_PORT1_DIR &= ~BIT(LEDN_S1_BIT); } if(seg & BIT(2)) { LEDN_PORT2_OUT &= ~BIT(LEDN_S2_BIT); /// LEDN_PORT2_HD |= BIT(LEDN_S2_BIT); LEDN_PORT2_DIR &= ~BIT(LEDN_S2_BIT); } if(seg & BIT(3)) { LEDN_PORT3_OUT &= ~BIT(LEDN_S3_BIT); /// LEDN_PORT3_HD |= BIT(LEDN_S3_BIT); LEDN_PORT3_DIR &= ~BIT(LEDN_S3_BIT); } if(seg & BIT(4)) { LEDN_PORT4_OUT &= ~BIT(LEDN_S4_BIT); /// LEDN_PORT4_HD |= BIT(LEDN_S4_BIT); LEDN_PORT4_DIR &= ~BIT(LEDN_S4_BIT); } if(seg & BIT(5)) { LEDN_PORT5_OUT &= ~BIT(LEDN_S5_BIT); /// LEDN_PORT5_HD |= BIT(LEDN_S5_BIT); LEDN_PORT5_DIR &= ~BIT(LEDN_S5_BIT); } if(seg & BIT(6)) { LEDN_PORT6_OUT &= ~BIT(LEDN_S6_BIT); /// LEDN_PORT6_HD |= BIT(LEDN_S6_BIT); LEDN_PORT6_DIR &= ~BIT(LEDN_S6_BIT); } if(seg & BIT(7)) { LEDN_PORT7_OUT &= ~BIT(LEDN_S7_BIT); /// LEDN_PORT7_HD |= BIT(LEDN_S7_BIT); LEDN_PORT7_DIR &= ~BIT(LEDN_S7_BIT); } if(seg & BIT(8)) { LEDN_PORT8_OUT &= ~BIT(LEDN_S8_BIT); /// LEDN_PORT8_HD |= BIT(LEDN_S8_BIT); LEDN_PORT8_DIR &= ~BIT(LEDN_S8_BIT); } if(seg & BIT(9)) { LEDN_PORT9_OUT &= ~BIT(LEDN_S9_BIT); /// LEDN_PORT9_HD |= BIT(LEDN_S9_BIT); LEDN_PORT9_DIR &= ~BIT(LEDN_S9_BIT); } if(seg & BIT(10)) { LEDN_PORT10_OUT &= ~BIT(LEDN_S10_BIT); /// LEDN_PORT10_HD |= BIT(LEDN_S10_BIT); LEDN_PORT10_DIR &= ~BIT(LEDN_S10_BIT); } if(seg & BIT(11)) { LEDN_PORT11_OUT &= ~BIT(LEDN_S11_BIT); /// LEDN_PORT11_HD |= BIT(LEDN_S11_BIT); LEDN_PORT11_DIR &= ~BIT(LEDN_S11_BIT); } if(seg & BIT(12)) { LEDN_PORT12_OUT &= ~BIT(LEDN_S12_BIT); /// LEDN_PORT12_HD |= BIT(LEDN_S12_BIT); LEDN_PORT12_DIR &= ~BIT(LEDN_S12_BIT); } cnt = (cnt >= 13) ? 0 : cnt+1; } #endifВообщем есть проц risc
А еще размытее не пробовал? Ну там "есть проц из кремния"?
Прдедставить всю программу - не получится, она занимает 40 мб, и состоит из более чем 600 файлов. Свой компилятор, свои процессоры, свой SDK с библиотеками.
И что, все 40 Мбайт крутятся на Ардуине?
Я же написал, что это не ардуина. Это совсем другой проц, причем 32 битный, к ардуино не имеет отношения. Тактовая частота - 192 МГц)
Тактовая частота - 192 МГц)
Нибуясе))) Вот это мясорупка))) Да ышшо на 32 бита))) Крутатень)))) Где капил и чопачом????????
Я же написал, что это не ардуина. Это совсем другой проц, причем 32 битный, к ардуино не имеет отношения. Тактовая частота - 192 МГц)
И что тогда эта тема делает на форуме по Ардуино?
Тактовая частота - 192 МГц)
Нибуясе))) Вот это мясорупка))) Да ышшо на 32 бита))) Крутатень)))) Где капил и чопачом????????
На али, 15 баксов за 10 штук. Это очень ходовые и извстные процы, в основном в всяких аудиомодулях, декодерах и прочих) Кстати, там на борту ещё Bluetooth 4.2, аппаратный USB + DSP + 1MB SPI FLASH, + Куча портов, причем мультиплексированных)
Я же написал, что это не ардуина. Это совсем другой проц, причем 32 битный, к ардуино не имеет отношения. Тактовая частота - 192 МГц)
И что тогда эта тема делает на форуме по Ардуино?
Тут народ тусуется, который шарит в программировании, тем более юзают всякие ESP 32, что в принципе похоже на то что у меня)
Почему собственно бы и нет?
Наверно потому, что для этого проца нет тулкита а ардуино IDE ?
Да. Среда разработка - Code::Blocks
Софт, доки и прочее на китайском.
И в принципе, это чисто китайское детище)
Простое решение - вывести после 165 строки и 169 строк имена устройств, сделать паузу и вывести пробелы. Решение не идеальное т.к. на время паузы заблокирует все остальные операции.
Как вывести можно посмотреть например в строках 507 и 517.
ТС, берёшь любую Ардуино, цепляешь к ней TM1637 индикатор, пишешь простенький скетч. Задача большого МК - дёрнуть пином при подключении флешки. Либо же подключить Ардуино к мигающему при этом LED-у, если таковой имеется.