Bob Johnson (@Bob11)

Twenty-eight years of design engineering in the broadcasting market designing audio and video products for TV, film, and post-production professionals. Programming from 6502s and 56001 DSPs to multi-core processors and Sharcs, board layout from Bishop Graphics tape to many-layer CAD, TTL to Zynq circuit designs, it's been a wild ride.

Because only a random monkey would believe in the possibility that the compiler that runs most of the world's infrastructure could somehow pull a negative number...

Re: Coding challenge in C for embedded systems

Reply posted 5 months ago (07/13/2022)
This isn't a detailed answer, but a suggestion: consider using a state machine approach for problems like this. Enumerate the possible states of the actuator and...

Re: Modeling and Code Generation now called "Low-Code"

Reply posted 7 months ago (05/15/2022)
Yes, in forty years of embedded development I've seen dozens of similar products come and go. That's because the sales pitch is invariably to upper management that...
From your post it's not clear to me what HAL_Delay() really is. These 44780 controllers tend to be SLOW SLOW SLOW, and you don't want to move faster than the BUSY...
Works fine for me with gcc if I move the typename 'Settings' to before the ending semicolon where it belongs:typedef union{  struct  {    uint8_t vdMagicNum;   ...

Re: Contribution counters

Reply posted 2 years ago (05/03/2021)
Hi Stephane,I tried as you suggested and it seemed to work correctly. Perhaps we're all just thumbs-upping everyone else's posts, so no one can gain ground :-)

Re: Contribution counters

Reply posted 2 years ago (04/29/2021)
I'm not sure why I have so many, other than that I've been on this forum since stephaneb began it. You can have some of mine--there's too much pressure here at the...
That has something to do with where the linker/loader is putting the INTVEC section. I'm not familiar with your development environment, however, so I can't tell...
Looks to me like your addresses are in little-endian, with jumpvec0 at either 0xfc82 or 0xfcc8 depending on memory size. The __reset vector seems to be placed at...
Make sure the linker is putting the .vector section where it's supposed to be for the new memory size. Many embedded CPUs put the reset vector at the top of memory,...

Re: SDKs and project management

Reply posted 2 years ago (02/08/2021)
I agree that the IDE manufacturers are keen on lock-in. If you're Keil, you don't want your customers jumping ship to Gnu or some other IDE vendor. That's not really...

Re: SDKs and project management

Reply posted 2 years ago (02/08/2021)
This is why I do most of my embedded development that uses proprietary SDKs in virtual machines if at all possible. Not only can I archive the entire development...
I'd be surprised you even see the LED light. How long does it take your userspace--kernelspace interface to transmit data?

Re: Custom LCD

Reply posted 2 years ago (07/26/2020)
I've never done a custom display so I have no idea if what you're proposing can be done or not. I've used a lot of displays from Newhaven Display though with success,...

Re: Software Bugs

Reply posted 3 years ago (05/30/2020)
Putting embedded programmers and web programmers together for dinner and having them discuss their tools and processes would be like watching Kirk and Chang at the...
You're right. I should have said 'at least 8 bits'. The C standard is squishy enough even for the next-generation WeirdStuff embedded quantum computer :-)

Re: Software Bugs

Reply posted 3 years ago (05/27/2020)
I thought the DoD was still using Ada, which has a type-safety architecture that makes C/C++ look almost as sloppy and lazy as Python? Anyway, anything as complicated...
Actually, all those questions ARE answered formally in the C/C++ ISO standard. Here's an excerpt from a 2006 draft: "The result of E1 << E2 is E1 left-shifted...
<i>What do you think of using the TouchGFX engine for driving our HMI ?</i>I've never used it myself, but it looks like a good tool. In particular, it...

Re: Embedded Development Predictions for 2020-2029

Reply posted 3 years ago (01/09/2020)
Easy predications:C will continue to dominate in microcontrollers (bare metal or RTOS), and C++ will gain in microprocessors running embedded Linux. Multi-core...

Re: Looking for better touchscreen displays.

Reply posted 3 years ago (01/01/2020)
Welcome to embedded programming in the real world.Unfortunately, I'm not aware of any easy answer for you. I suspect the LCD screen refresh rate is almost certainly...

Re: Outdoor LED Decorative Project Question

Reply posted 3 years ago (11/08/2019)
I've done holiday decorations for decades. Like CustomSarge said, if you're in the Northern Hemisphere temperature is unlikely to be a problem, particularly at night....
1) Projects which boot up and run correctly the first time, with fewer errors, omissions, or technological 'misunderstandings'.2) More attention and understanding...

Re: MPLab and XC8 file organization

Reply posted 3 years ago (06/11/2019)
mr_bandit addresses most of the C issues, although he's perhaps a bit harsh on the PIC. It's customary in C programs for 'main.c' to be the startup code for a project,...

Re: MPLab and XC8 file organization

Reply posted 3 years ago (06/10/2019)
I'm unfamiliar with the MPlab IDE, but it appears the github example may be missing a project file or something similar. In essence the C compiler doesn't know anything...
With an 8-bit (byte) protocol there's really no robust way to get around needing to service every byte in the interrupt routine. Of course you don't have to pass...
Like most 8051's, the AT89S52 has three timers, 0, 1 and 2. The UART can use either timer 1, timer 2, or the internal baud rate generator (based on the external...

Re: LCD character update speed with AT89S52 micro

Reply posted 4 years ago (12/30/2018)
About 50ms or slower is where humans begin to notice lag. (Consider that most movies are filmed at 24 frames per second, which is just slightly faster than that.)...

Re: Adding a percentage to a 16-bit number in 8051

Reply posted 4 years ago (12/06/2018)
On a small micro like an 8051 the details are all-important. That's because the general way to do what you're trying to do is to use floating point math or to use...

Re: Low level programming

Reply posted 4 years ago (12/03/2018)
In High School a long long time ago I wire-wrapped my own computer using a 6800 with front panel toggle switches and a couple of 7-segment displays, and toggled...

Re: Nand flash read isuue

Reply posted 4 years ago (10/16/2018)
Have to agree with SpiderKenny. It sounds like you've exhausted many of the software options. As this is a custom board it's time to break out the oscilloscope and...

Re: How to measure distance between two sensors

Reply posted 4 years ago (08/01/2018)
That's a tough nut to crack. If there were (inexpensive) sensors that did that you'd almost certainly find them in the gaming industry (Kinect, etc.) There are companies...

Re: How to measure distance between two sensors

Reply posted 4 years ago (08/01/2018)
You need to provide more information about the application. Do you just need distance (a scalar), or full 3D position (a vector)? At what distance (inches or miles)?...

Re: Measure Frequency using STM32F4

Reply posted 4 years ago (07/21/2018)
You don't really mention whether you're looking for jitter in the base 6MHz (ie jitter between pulse widths but an overall accurate 6MHz) or drift (ie little jitter...

Re: Good SNMP Book?

Reply posted 4 years ago (06/29/2018)
It's getting somewhat long in the tooth now (2007), but the book "Linux Appliance Design" has one of the better embedded-oriented introductions I've seen to SNMP....
In this application, current draw isn't your concern, but charge. First, note that your MCU bullet point #2 specs are 170uA/MHz @ 24.5 MHz. That sounds more like...

Re: RTOS vs Bare-Metal

Reply posted 5 years ago (05/01/2018)
mirceac raises the good point that the definition of RTOS is murky in the embedded world. Some folks consider Linux built with its real-time extensions an RTOS,...

Re: Which FPGA kit to start with in 2018?

Reply posted 5 years ago (03/26/2018)
Xilinx is a good choice if you're developing on a Linux workstation; I've had the most success with their tools on mine. Xilinx also supports the widest range of...

Re: Compilers for Embedded Systems

Reply posted 5 years ago (03/21/2018)
In the olden days (back when I was youngen) there were far more paid compilers than free compilers for a couple of reasons: the chips were less complicated, and...
Good question.I would think it would depend a lot on the network the remote device finds itself on. There's a huge difference between a remote device sitting on...

Re: Standards and the Small Business Embedded Developer

Reply posted 5 years ago (02/18/2018)
(Answering my own question) It seems like everyone else has the same issues and roughly the same solutions. I agree that USB is the worst, and mjbcswitzerland spells...

Re: Which system for dual display dual lvds

Reply posted 5 years ago (02/15/2018)
A quick google search turns up, for example, the Inforce 6420 SBC:http://linuxgizmos.com/snapdragon-600-sbc-offers-an-hdmi-input-and-dual-hdmi-outputs-for-99/You...

Re: New Topics - Inspiration Needed!

Reply posted 5 years ago (02/01/2018)
Proposed Topic: Standards and the Small Business Embedded DeveloperSmall businesses make up 99% of the U.S. economy, and many embedded developers work in small firms....
Firmware: code that compiles down to bits to control a device in real-time, eg, Verilog code for an FPGA. Typically parallel execution at the lowest level.Software:...
The FPGA (and its baby brother the PLD) is simply another tool in the design engineer's toolbox. Most of my designs are for the professional audio space, and typically...

Re: Embedded Engineers Most Important and Useful Skills

Reply posted 5 years ago (10/25/2017)
Having been doing this for thirty years, still loving it, and intending to keep doing it for as long as possible, I'd have to say the most important skill is a passion...
@Matthew Eshleman hit most of the important points. I'd add that previous familiarity with the microcontroller and its toolchain means that often the microcontroller...

Re: RTOS Debugging Techniques

Reply posted 6 years ago (04/30/2017)
IMO, the closer to the metal (silicon?) the RTOS and application are, the more important it is to be familiar with the ABI and start-up processes of the software...
A control surface is really just the application of basic embedded system concepts. Switches can be read by I/O ports, lamps lit by the same I/O ports (usually driven...

Use this form to contact Bob11

Before you can contact a member of the *Related Sites:

  • You must be logged in (register here)
  • You must confirm you email address