--- title: Práctica 1. Entorno de Modelado Gráfico basado en Componentes EDROOM sobre RTEMS 4.6 description: Código de los métodos de las clases componentes Práctica 1 del laboratorio de Gestión de Datos a Bordo del Grado en Física e Instrumentación Espacial de la Universidad de Alcalá tags: OBDH-GFIE, laboratorio robots: noindex, nofollow --- # Práctica 1. Código de los métodos de la Práctica 1 #### CCSystemMng::EDROOMIRQ18HandlerTopHalfFunction ```c= EDROOMVarIRQ18=leon3_getchar(); EDROOMIRQ18BottomHalfSignal=true; switch(EDROOMVarIRQ18){ case('T'): case('t'): case('I'): case('i'): break; default: EDROOMIRQ18BottomHalfSignal=false; } ``` #### CCSystemMng::CTXTop::FInit() ```c= SerialCommand.MaskIRQ(); SerialCommand.InstallHandler(); leon3_uart_ctrl_rx_irq_enable(); leon3_uart_ctrl_rx_enable(); SerialCommand.UnMaskIRQ(); nexys_srg_gpio_init_buttons_switches(); nexys_srg_gpio_init_leds_7segs_displays(); ``` #### CCSystemMng::CTXTop::CTXStartUp:FSendLEDStart() ```c= // Complete Data *pSLEDStart_Data=CLEDPeriod100Ms; ``` #### CCSystemMng::CTXTop::GCmdIsToogleLEDShift() ```c= return (('t'==VCommand) || ('T'==VCommand)); ``` #### CCSystemMng::CTXTop::GCmdIsIncreaseDisplays() ```c= return (('i'==VCommand) || ('I'==VCommand)); ```   #### CCLEDMng::CTXTop::FGetShiftPeriod() ```c= // Data access VShiftPeriodMicrosecs=varSLEDStart*100000; //Limit Period if(VShiftPeriodMicrosecs > CMaxShiftPeriodMicrosecs) VShiftPeriodMicrosecs=CMaxShiftPeriodMicrosecs; else if (varSLEDStart < CMinShiftPeriodMicrosecs) VShiftPeriodMicrosecs=CMinShiftPeriodMicrosecs; //Get Time reference VTimeRef.GetTime(); ``` #### CCLEDMng::CTXTop::FProgShift() ```c= VTimeRef+=Pr_Time(0,VShiftPeriodMicrosecs); // interval of X sec + Y microsec time= VTimeRef; ``` #### CCLEDMng::CTXTop::FShiftLEDs() ```c= nexys_srg_gpio_turn_off_led(VLEDPos); if(VShiftDirection){ VLEDPos=(VLEDPos + 1)%10; }else{ if(VLEDPos){ VLEDPos--; }else{ VLEDPos=9; } } nexys_srg_gpio_turn_on_led(VLEDPos); ``` #### CCDisplaysMng::CTXTop::FRefreshDisplays() ```c= for(uint16_t i=0; i < 1000 ; i++ ) nexys_srg_gpio_seg_7seg_array(8,VDisplays7SegValue); ``` #### CCDisplaysMng::CTXTop::FIncreaseDisplays() ```c= nexys_srg_gpio_increase_seg_7seg_array(VDisplays7SegValue); ``` #### CCDisplaysMng::CTXTop::FSendDisplaysReady() ```c= for(uint8_t i=0; i < 8 ; i++) VDisplays7SegValue[i]=0; nexys_srg_gpio_set_7seg_digit(7, 0) ; ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up