Skip to content

Programma

Het hele idee van de controller is om een progarmma uit te voeren. Op deze pagina beschrijven hoe dit werkt.

Programmeren

Voor het programmeren is een eigen ontwikkeltaal gemaakt. Deze hier beschreven: programma speccificatie. Na het programmeren moet het programma gecompileerd worden.

Na het compileren moet de programma geschreven worden in het geheugen. Dat kan op 2 manieren zoals beschreven in de volgende paragrafen.

Programma laden in de firmware

De eerste methode is het laden van het programma in de firmware. In basis kan hiervoor de volgende stappenplan gevolgt worden:

  1. Schrijf een programma.
  2. Compileer het programma met de gpc
  3. Copieer het bestand dat gemaakt is als output naar de root van de firmware folder
  4. Zorg er voor dat het programma binary_file.bin heet
  5. Compileer en laad de firmware

Programma laden via de SD Card

Een andere mogelijkheid is het laden van een programma via de SD Card. Hiervoor dient een bestand met de name binary_file.bin in de root van de SD Card staan. Volg de volgende stappen:

  1. Schrijf een programma.
  2. Compileer het programma met de gpc
  3. Copieer het bestand dat gemaakt is als output naar de root van een SD Card
  4. Zorg er voor dat het programma binary_file.bin heet
  5. de SD Card moet FAT32 geformateerd zijn
  6. Herstart de STM32 piggybord.

Werking van de controller

De controller kan gezien worden als een virtuele omgeving. We simuleren een hardware die verschillende instructies (OPCODES) kan uitvoeren. Deze instructies staan in het geheugen en worden stuk voor stuk uitgevoerd.

program_controllerprogram_controllerprogram_controllerprogram_controllerprogram_controllerprogram_controllerprogram_controllerprogram_controllerprogram_controllerprogram_controllerinternal_sensorsLoggerFreeRTOSprogram_controllerinternal_sensorsLoggerFreeRTOSFreeRTOSprogram_controllerprogram_controllerinternal_sensorsinternal_sensorsLoggerLoggerprogram_controllerprogram_controllerprogram_controllerprogram_controllerprogram_controllerprogram_controllerprogram_controllerprogram_controllerprogram_controllerprogram_controllerinternal_sensorsLoggerInitializationprogram_controller_task()is_set_timeVM_OKMain looploopfetch_instruction_from_memoryalt[opcode STOPPEN]vm_exitterminate_threadterminate_thread[opcode BEGIN_EINDE_PROGRAMMA_INDEX]vm_store_shutdown_indexVM_OK[opcode WACHTEN]vm_delayVM_OK[opcode ZET_POORT_AAN]vm_pin_onVM_OK[opcode ZET_POORT_UIT]vm_pin_offVM_OK[opcode FLIP_POORT]vm_pin_toggleVM_OK[opcode BEWAAR_STATUS]vm_pin_toggleosMessageQueuePut(telemetry)VM_OKVM_OK[opcode SPRING]vm_pin_toggleVM_OK
400. Welcome to PlantUML! You can start with a simple UML Diagram like: Bob->Alice: Hello Or class Example You will find more information about PlantUML syntax onhttps://plantuml.com (Details by typinglicensekeyword) PlantUML 1.2025.4beta3[From string (line 2) ] @startuml!include https://raw.githubusercontent.com/MikhailKravets/mkdocs_puml/master/themes/default/dark.pumlCannot open URL