Processor Expert z Kinetis Design Studio – wygoda tworzenia [PRZYKŁAD]
[...]
/* User includes (#include below this line is not maintained by Processor Expert) */
int delay_ms;
[...]
void TI1_OnInterrupt(LDD_TUserData *UserDataPtr){
if(delay_ms)
--delay_ms;
}
Natomiast w pliku main.c definiujemy funkcję wait_ms(), przy czym robimy to w miejscu które nie zostanie nadpisane przez generator kodu (można byłoby ją zdefiniować w oddzielnym pliku, ale dla wygody przy niewielkich programach można to zrobić w tym samym pliku co funkcja main()):
[...]
/*** End of main routine. DO NOT MODIFY THIS TEXT!!! ***/
void wait_ms(int d){
extern int delay_ms;
delay_ms = d;
while( delay_ms );
}
[...]
Pamiętajmy również o umieszczeniu deklaracji danej funkcji gdzieś w dozwolonym miejscu na początku pliku, aby uniknąć błędów kompilacji. Zamieniamy także w głównej pętli programu instrukcje:
for(i = 0; i < 0xAFFF; ++i);
na instrukcje:
wait_ms(250);
W wyniku takiej modyfikacji czerwona dioda LED będzie zapalana i gaszona z częstotliwością 2Hz. Dodatkowo program można uzupełnić o obsługę pozostałych diod LED dostępnych na płytce FRDM-KL25Z (rysunek 5,19,20), zapalanych po kolei w sekwencji R, G, B, OFF.
Rys. 19. Dodanie komponentów z widoku Components Library
Rys. 20. Uzupełnienie projektu o dodatkowe komponenty typu BitIO_LDD
int main(void)
/*lint -restore Enable MISRA rule (6.3) checking. */
{ /* Write your local variable definition here */
/*** Processor Expert internal initialization. DON'T REMOVE THIS CODE!!! ***/
PE_low_level_init();
/*** End of Processor Expert internal initialization. ***/
/* Write your code here */
while(1){
wait_ms(250);
RLED_ClrVal(NULL);
GLED_SetVal(NULL);
BLED_SetVal(NULL);
wait_ms(250);
RLED_SetVal(NULL);
GLED_ClrVal(NULL);
BLED_SetVal(NULL);
wait_ms(250);
RLED_SetVal(NULL);
GLED_SetVal(NULL);
BLED_ClrVal(NULL);
wait_ms(250);
RLED_SetVal(NULL);
GLED_SetVal(NULL);
BLED_SetVal(NULL);
}
/*** Don't write any code pass this line, or it will be deleted during code generation. ***/
/*** RTOS startup code. Macro PEX_RTOS_START is defined by the RTOS component. DON'T MODIFY THIS CODE!!! ***/
#ifdef PEX_RTOS_START
PEX_RTOS_START(); /* Startup of the selected RTOS. Macro is defined by the RTOS component. */
#endif
/*** End of RTOS startup code. ***/
/*** Processor Expert end of main routine. DON'T MODIFY THIS CODE!!! ***/
for(;;){}
/*** Processor Expert end of main routine. DON'T WRITE CODE BELOW!!! ***/
} /*** End of main routine. DO NOT MODIFY THIS TEXT!!! ***/
Eksportowanie, importowanie i kopiowanie projektu
Co jakiś czas zdarzają się sytuacje, gdy potrzeba zachować aktualny stan projektu lub utworzyć jego kopię, którą następnie można wykorzystać jako podstawę do rozwoju innego projektu. W pierwszym przypadku możemy skorzystać z funkcji eksportu projektu – klikając PPM na nazwie wybranego projektu w widoku Project Explorer wywołujemy menu kontekstowe i wybieramy Export. W okienku jakie się pojawi mamy do wyboru wiele opcji (co i do jakiej postaci wyeksportować), jednak w danej chwili interesuje nas zachowanie projektu w pojedynczym pliku skompresowanym dlatego wybieramy General ? Archive File i przechodzimy dalej klikając Next (rysunek 21). Wskazujemy miejsce gdzie zostanie zapisany plik archiwalny i klikamy Finish (reszta ustawień pozostaje nietknięta, jak pokazano na rysunku 22).
Rys. 21. Eksportowanie projektu do pliku archiwalnego
Rys. 22. Wybór projektów, plików konfiguracyjnych, ścieżki oraz formatu pliku wyjściowego


[RAQ] Uproszczenie pokładowych systemów bezpieczeństwa oraz zwiększenie wydajności wideo dzięki zastosowaniu GMSL
Cyfrowa transformacja polskich firm przyspiesza – raport Polcom 2025
MIPS S8200 dostarcza oprogramowanie RISC-V NPU umożliwiające fizyczną AI w autonomicznej sieci brzegowej 





