Posts with the tag C++:

W7500P Chatbot?

I am working on Serial to Ethernet (S2E), StablE contest from It uses WIZnet’s new serial to Ethernet module WIZ750SR based on W7500P Ethernet MCU. WIZ750SR Layout W7500P SoC is an one-chip solution which integrates an ARM Cortex-M0 core. This chip runs at 48 MHz maximum frequency with 16 KB SRAM and 128 KB flash. When I submit my idea to build a slack chatbot on it, I really doubt if this is going to work.

Arduino OpenWeatherMap Client

This project requires Arduino UNO, Arudino Ethernet Shield, and a 1602 LCD display. My plan is to build a simple OpenWeatherMap client using Arduino UNO + Ethernet Shield and output weather information to LCD. OpenWeatherMap Signup We have to get an APPID from OpenWeatherMap to use their Weather API. The free account is sufficient for this project. Arduino Ethernet Library Arduino website has a complete reference to the Ethernet library. This library allows an Arduino board to connect to the Internet.

FFmpeg API Notes

This is my FFmpeg API notes when I was working on audio and video encoding/decoding projects. This note isn’t complete and you may first want to take a look at An ffmpeg and SDL Tutorial. Initialization FFmpeg library must be initialized before using any of the encoder, decoder, muxers, demuxers, and filters. avcodec_register_all. For libavcodec, register all codecs, parsers, and bitstream filters which were enabled at configuration time. av_register_all. For libavformat, initialize and register all the muxers, demuxers, and protocols.

std::atomic vs. volatile

For tl;dr people, from Effective Modern C++: std::atomic is for data accessed from multiple threads without using mutexes. It’s a tool for writing concurrent software. volatile is for memory where reads and writes should not be optimized away. It’s a tool for working with special memory. volatile is a type qualifier that you can use to declare that an object can be modified in the program by the hardware. It has nothing to do with concurrent programming.