int main () { //! [Interesting] // Instantiate a Speaker (PWM) on digital pin D3 speaker_context speaker = speaker_init_pwm(26); if (!speaker) { printf("speaker_init() failed\n"); return 1; } // emit a series of frequencies for 500ms each speaker_emit(speaker, 50, 500); speaker_emit(speaker, 75, 500); speaker_emit(speaker, 125, 500); speaker_emit(speaker, 250, 500); speaker_emit(speaker, 500, 500); speaker_emit(speaker, 1000, 500); speaker_emit(speaker, 2000, 500); speaker_emit(speaker, 3000, 500); speaker_emit(speaker, 5000, 500); speaker_emit(speaker, 10000, 500); printf("Exiting\n"); speaker_close(speaker); //! [Interesting] return 0; }
/** * @brief:farSignalProcess * * @note: */ void farSignalProcess(void) { gl_leftNumOrig = findLeftBlackNum(); gl_rightNumOrig = findRightBlackNum(); /* gl_leftValueOrig and gl_rightValueOrig are only for SD print. */ gl_leftValueOrig = getLeftValue(gl_leftNumOrig); gl_rightValueOrig = getRightValue(gl_rightNumOrig); // if(ReadSwitch(0X40)) // { // //judgeStartline(); // } /* judge if it is crossline, set gl_crossline, otherwise clear gl_crossline. */ judgeCrossline(); if(!gl_crossline) { farSignalFilter(); } else { gl_leftBlackNum = -1; gl_rightBlackNum = -1; } // farSignalFilter(); s_leftBlackNumLast = gl_leftBlackNum; s_rightBlackNumLast = gl_rightBlackNum; /* gl_leftValue and gl_rightValue are only for SD print. */ gl_leftValue = getLeftValue(gl_leftBlackNum); gl_rightValue = getRightValue(gl_rightBlackNum); gl_outType = judgeOutType(); getHistorySignal(); if(gl_crossline) { speaker_open(SPEAKER0); //BUZZER_ON(); } else { speaker_close(SPEAKER0); //BUZZER_OFF(); } }
// initialization in PWM mode speaker_context speaker_init_pwm(int pin) { speaker_context dev = NULL; if (!(dev = _common_init())) return NULL; dev->is_pwm = true; if (!(dev->pwm = mraa_pwm_init(pin))) { printf("%s: mraa_pwm_init() failed.\n", __FUNCTION__); speaker_close(dev); return NULL; } // set the default frequency to 1Khz dev->default_freq = 1000; return dev; }
// initialization in GPIO mode speaker_context speaker_init(int pin) { speaker_context dev = NULL; if (!(dev = _common_init())) return NULL; dev->is_pwm = false; if (!(dev->gpio = mraa_gpio_init(pin))) { printf("%s: mraa_gpio_init() failed.\n", __FUNCTION__); speaker_close(dev); return NULL; } #if defined(UPM_PLATFORM_LINUX) // Would prefer, but not fatal if not available mraa_gpio_use_mmaped(dev->gpio, 1); #endif // UPM_PLATFORM_LINUX mraa_gpio_dir(dev->gpio, MRAA_GPIO_OUT); return dev; }
int main(int argc, char **argv) { uint8_t speaker_no = 0; uint8_t speaker_total_no = 2; uint8_t get_char = 0; uint8_t n = 0; ER speaker_msg = 0; /* 模块初始化 */ // exc_init(); /* 中断初始化 */ //sys_timer_init(); /* 系统时钟初始化 */ speaker_init(); /* 蜂鸣器初始化 */ light_init(); //serial_initialize((intptr_t)(NULL)); /* 初始化串口 */ // printf("\n Welcome to k60 software platform! \n"); while(1) { speaker_msg = speaker_close(SPEAKER0); light_open(LIGHT0); } //printf(" *** This is a test for speaker module! *** \n"); // printf(" \n>>>> The speaker will be ringing! \n"); // for(speaker_no = 0; speaker_no < speaker_total_no; speaker_no++) // { // delay(200); // switch (speaker_no) // { // case 0: // speaker_msg = speaker_open(SPEAKER0); // break; // case 1: // speaker_msg = speaker_open(SPEAKER1); // break; // default: // //printf("The speaker number is error!\n"); // break; // // } // if (speaker_msg == E_ID) // { // //printf(" The ID of speaker%d is error!\n", speaker_no); // } // else if (speaker_msg == E_ILUSE) // { // // printf(" The port of speaker%d is not open!\n", speaker_no); // } // else // { // // printf(" The speaker%d is ringing now!\n", speaker_no); // } // } // // //printf(" \n>>>> The speaker will be not ringing! \n"); // for (speaker_no = 0; speaker_no < speaker_total_no; speaker_no++) // { // delay(200); // switch (speaker_no) // { // case 0: // speaker_msg = speaker_close(SPEAKER0); // break; // case 1: // speaker_msg = speaker_close(SPEAKER1); // break; // default: // //printf("The speaker number is error!"); // break; // // } // if (speaker_msg == E_ID) // { // // printf(" The ID of speaker%d is error !\n", speaker_no); // } // else if (speaker_msg == E_ILUSE) // { // //printf(" The port of speaker%d is not open!\n", speaker_no); // } // else // { // //printf(" The speaker%d is not ringing now!\n", speaker_no); // } // } // // //printf(" \n>>>> The speaker will change frequence! \n"); // // for(n=0;n<10;n++) // { // delay(10); // if(speaker_read(SPEAKER0)) // { // speaker_close(SPEAKER0); // } // else // { // speaker_open(SPEAKER0); // } // } // for(n=0;n<10;n++) // { // delay(5); // if(speaker_read(SPEAKER0)) // { // speaker_close(SPEAKER0); // } // else // { // speaker_open(SPEAKER0); // } // } // for(n=0;n<20;n++) // { // delay(1); // if(speaker_read(SPEAKER0)) // { // speaker_close(SPEAKER0); // } // else // { // speaker_open(SPEAKER0); // } // } // for(n=0;n<10;n++) // { // delay(10); // if(speaker_read(SPEAKER0)) // { // speaker_close(SPEAKER0); // } // else // { // speaker_open(SPEAKER0); // } // } // for(n=0;n<10;n++) // { // delay(20); // if(speaker_read(SPEAKER0)) // { // speaker_close(SPEAKER0); // } // else // { // speaker_open(SPEAKER0); // } // } // // speaker_close(SPEAKER0); // // printf(" \n>>>> A test for speaker module is over!\n"); // while (1) // { // // printf(" \n>>>> Press 'n' to test once more.\n"); // serial_rea_dat(NTSHELL_PORTID, &get_char, 1); // // if (get_char == 'n') // { // // printf("Once more \n"); // delay(200); // break; // } // } // } }