void bsp_ppi_init( void ) { PPI_InitTypeDef hppi_start; PPI_InitTypeDef hppi_stop; hppi_start.Channel = NRF_PPI_CHANNEL0; hppi_start.Group = NRF_PPI_CHANNEL_GROUP0; hppi_start.EventEndPoint = (uint32_t)(&TIMER_EVENTS_COPPARE(htick_start.Instance, htick_cc[1].Channel)); hppi_start.TaskEndPoint = (uint32_t)(&htick.Instance->TASKS_START); hppi_start.ForkState = DISABLE; hppi_start.ForkTaskEndPoint = NULL; PPI_Init(&hppi_start); hppi_stop.Channel = NRF_PPI_CHANNEL1; hppi_stop.Group = NRF_PPI_CHANNEL_GROUP0; hppi_stop.EventEndPoint = (uint32_t)(&TIMER_EVENTS_COPPARE(htick_stop.Instance, htick_cc[2].Channel)); hppi_stop.TaskEndPoint = (uint32_t)(&htick.Instance->TASKS_STOP); hppi_start.ForkState = DISABLE; hppi_start.ForkTaskEndPoint = NULL; PPI_Init(&hppi_stop); PPI_ChannelCmd(&hppi_start, ENABLE); PPI_ChannelCmd(&hppi_stop, ENABLE); // PPI_SetChannelGroup(&hppi_start, ENABLE); // PPI_SetChannelGroup(&hppi_stop, ENABLE); // PPI_GroupCmd(&hppi_start, ENABLE); // PPI_GroupCmd(&hppi_stop, ENABLE); }
void main(void) { unsigned short Val_Freq; // Valeur analogique de la frequence lue sur le potentiometre DebugClear(); // Initialisation des ports PPI_Init(); EXPORT_Init(); LED_Y_Init(); LED_R_Init(); // Initialisation de la memoire XHeap_init(); // Mise en marche du convertisseur AdcSet(ADC0,ADCDF_128); AdcOn(); while(1) { Val_Freq = AdcRead(); // Acquisition de la valeur // affichage des 8 MSB (sur 10) de la valeur de la tension sur les LEDS hautes en SPI LED_R(Val_Freq>>2); Send_1(MsgBox_1, Val_Freq); // Affichage de la mesure dans la fenêtre 'ON-The-Fly' du mode Débug DebugClear(); DebugPrint("\nValeur clignotement (0 à 1023) : "); DebugSHORT(Val_Freq,DEC); } }
void main(void) { unsigned short Val_Freq; // Valeur analogique de la frequence recuperee en Heap int led; int sens_led; int demi_periode; // Init des ports PPI_Init(); EXPORT_Init(); LED_Y_Init(); LED_R_Init(); // Init des variables led=0; sens_led=0; demi_periode=0; while(1) { Val_Freq = Receive_1(MsgBox_1); // Affichage de la valeur lue dans la fenêtre 'ON-The-Fly' du mode Débug DebugClear(); DebugPrint("\nValeur clignotement (0 à 1023) : "); DebugSHORT(Val_Freq,DEC); //demi_periode = 10 + (int)(1024/(Val_Freq+1)); demi_periode = 5 + (int)((1024-Val_Freq)/2); DebugPrint("\nValeur demi periode : "); DebugINT(demi_periode,DEC); // Attente correspondante (entre 11 et 1034 ms) Delay_ms(demi_periode); // Clignotement effectif // Gestion pour decaler (d'un cran) l'allumage des LEDS en chenillard LED_Y_Off(led); // extinction de la precedente LED if (sens_led==0) { led++; // incrementation - decalage droite if (led>7) { led=6; sens_led=1; } } else { led--; // decrementation - decalage gauche if (led<0) { led=1; sens_led=0; } } LED_Y_On(led); // allumage de la nouvelle LED } }