Category: Programmering

Mine sider

C++ String – Examples

Find first word in sentence –  std::string firstWord = s1.substr(0, s1.find(” “));


October 11, 2018 0

Min første “hello world” app

Prøvede i dag for sjovt, at lave en lille Andirod APP til min mobil. Det viste sig, at være overraskende let. Det første man skal er at downloade “Android Studio” fra https://developer.android.com/studio/ Når man installer Android Studio skal man bare sige “yes” til at lade den installere alle de pakker den behøver, og det tager…
Read more


June 25, 2018 0

Ruby Serial Port

Ruby har gem for RS232 kommunikation (https://www.rubydoc.info/gems/serialport/SerialPort) Som det ses på https://www.rubydoc.info/gems/serialport/SerialPort er der mange methoder til at konfigurere porten.   Nedenstående er et lille eksempel på hvor den SerialPort kan bruges.   serialPortCli = SerialPort.new($config[“rs232”][“cliComPort”], 115200) serialPortCli.write_timeout=-1 serialPortCli.read_timeout=-1 serialPortCli.flow_control = SerialPort::NONE  


May 22, 2018 0

Problemer med RS232 kommunikation

I dag har jeg spildt en næsten en hel dag, fordi jeg havde et problem med vores RS232 kommunikation. Koden virkede fint når jeg bare sad, og lavede en simpelt kommunikation med min TeraTerm, men når jeg lavede mine test scripts via et Ruby script blev nogle af karakterne til 0, og mit script-test fejlede. …
Read more


May 15, 2018 0

AC6 Spaces i directory navnet.

I dag havde vi et problem, med at Jenkins begyndte at fejle med denne fejlmeddelelse : c:/ac6/systemworkbench/plugins/fr.ac6.mcu.externaltools.arm-none.win32_1.15.0.201708311556/tools/make/sh: syntax error: unexpected “(” . Fejlen begyndte efter at AC6 var blevet opdatereret til nyeste version. Efter noget research viste det sig, at være fordi Jenkins workspace var placereret under “program files (x86)\jenkins\workspace. Problemet forsvandt, da vi rykkede workspace’et…
Read more


May 8, 2018 0

FreeRtos – TMR SVR stack overflow

I dag havde jeg et problem med jeg fik et stack overflow crash. Det viste sig, at det var et TMR SCR stack overflow. Efter lidt søgning viste det sig, at man bestemmer stack størrelse i freeRtosConfig.h. Jeg øgede Timer stack størrelsen til 3 gange minimal stack størrelse med nedenstående i freeRtosConfig.h. #define configTIMER_TASK_STACK_DEPTH            ( configMINIMAL_STACK_SIZE *…
Read more


April 30, 2018 0

STM32F7 – HAL – Interrupt handling

Når man bruger CubeMx til at lave den basale kode får man automatisk genereret en interrupt handler for External Interrupts, som vist nedenfor.   /** * @brief This function handles EXTI line0 interrupt. */ void EXTI0_IRQHandler(void) { /* USER CODE BEGIN EXTI0_IRQn 0 */ /* USER CODE END EXTI0_IRQn 0 */ HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0); /* USER CODE…
Read more


April 22, 2018 0

C++ – Hvornår skal man bruge unordered map

C++ fik med C++11 versionen en “std::unordered_map” STL container, men hvornår skal man bruge “std::unordered_map” frem for “std::map”. Jeg har samlet en lille oversigt for hvornår, man skal hvad. Brug “std::map” når:  Du ønsker lav memory forbrug std::unordered_map bruger noget ekstra memory, så hvis der er ønske om at bruge mindst memory skal std:map vælges. Hvis…
Read more


April 13, 2018 0

UNI/O med STM32F7 og FreeRtos

For at kunne kommunikere med en UNI/O eeprom med en STM32F7, som kører FreeRtos, har jeg lavet et lille test program. Jeg har taget udgangspunkt i et eksempel skrevet af Stephen Early (Thanks Steve 🙂 – https://github.com/martmaiste/UNIO/blob/master/UNIO.h )   /* Copyright (C) 2011 by Stephen Early <steve@greenend.org.uk> Permission is hereby granted, free of charge, to any…
Read more


March 11, 2018 0

FreeRtos – Find ud af om man er i handler mode

I FreeRtos er det irriterende, at man skal bruge to forskellige måder til at ligge noget i en kø, alt efter om man er i en taks eller i ISR. Hvis man bruger CMSIS_OS sammen med FreeRtos, findes der faktisk en funktion, der kan fortælle om man er i ISR eller TASK. Desværre er den…
Read more


March 3, 2018 0