Sé lo básico de la programación en C. ¿En qué temas de la programación en C debería concentrarme más para la robótica, así como para los sistemas integrados o la programación de microcontroladores?

¡Eso también es increíble y cuestionable! Que conoces los conceptos básicos de la programación en C.
Para la robótica, dudo que necesite un aprendizaje profundo de C porque, como poco sé de robótica, las cosas tienen un alcance mucho más amplio y C casi ha perdido su lugar como lenguaje básico para una implementación tan grande. Los lenguajes de alto nivel han tenido lugar para los desarrolladores aquí. Python, C ++ y JavaScript son los más frecuentes.

Cuando se trata de sistemas embebidos y programación de microcontroladores, el lenguaje C es su cinta transportadora. Tienes que tener tus cosas claras con lo siguiente
operadores y operaciones con respecto a ellos:
Punteros de función,
Las palabras clave especiales se usan como la de constante, estática y volátil. (Const es realmente muy importante cuando luchas con menos espacio RAM en los controladores y tienes que usar solo la memoria flash).

Técnicas de optimización del compilador
Estructuras de datos
Estructuras (relleno de bytes y campos de bits) y uniones,

No puedo recordar todo eso, pero estos son realmente muy importantes.

Según mi opinión y la experiencia que tengo en el campo de los microcontroladores y los sistemas integrados, no se requiere un conocimiento profundo de C como tal.
Si tienes un conocimiento profundo, es beneficioso, pero si no lo tienes, no significa que te faltará en ninguna parte.
Nuevamente, repetiré las mismas cosas que debe saber al tratar con microcontroladores y sistemas integrados:
1. Manejo de matriz
2. Manejo de estructuras
3. Punteros (apenas se requiere puntero a punteros)
4. Operadores bit a bit
5. Clases de almacenamiento (p. Ej., Utilizando la clase de almacenamiento de registros cuando está utilizando una variable como contador de bucles)
6. Conversión de hexadecimal a decimal y viceversa.

Para un principiante en el campo de la robótica y los sistemas integrados, no necesita tener un conocimiento profundo del lenguaje de programación C.

Para realizar proyectos como un seguidor de línea, un robot para evitar obstáculos, debe conocer los bucles, los bucles while y las declaraciones if-else.

Pero el problema que puede enfrentar está en la optimización del código, porque tenemos una memoria muy limitada en MCU y, por lo tanto, nuestro código no debe exceder los límites de memoria.

Entonces, creo que deberías trabajar en los siguientes temas:
1) Uso de variables de 8 bits y 16 bits
2) Para loop / while loop
3) declaraciones If-else
4) manipulación de bits

Para el siguiente nivel de proyectos, como un solucionador de laberintos, un solucionador de cuadrículas, etc., debe trabajar en la parte de estructuras de datos, incluidas las técnicas de programación dinámica.

Los siguientes temas son muy importantes para que un programador de C migre a C incrustado
1. Clases de almacenamiento
2.Bit campos en estructuras
3. acolchado de estructura
4. punteros, punteros a punteros
5. punteros de función
6.diferencia entre macros y funciones en línea

C es un lenguaje tan conciso que no tiene que elegir un tema. Todo está interrelacionado y puedes aprender todo a la vez.
Sin embargo, si está seguro de lo básico, puede centrarse en los punteros. Pruebe este libro: Programación experta en C: Secretos profundos en C: Peter van der Linden: 9780131774292: Amazon.com: Libros Tiene algunos buenos consejos y una amplia colección de trampas en C. Si conoce todo lo que se ofrece en este libro, sería mejor que conozca los conceptos del sistema operativo y la administración de memoria de bajo nivel.

1. Operaciones bit a bit
2. Punteros
3. Usando números hexadecimales
4. Optimización del compilador