Mientras programa un ATtiny o ATmega, avrdude imprime la firma del dispositivo, en este ejemplo es un ATtiny.
avrdude: Device signature = 0x1e910a
¿Puedo leer esta firma en un dispositivo en ejecución usando el código C ++ (avr-gcc)? Para ATmega1280 hay un capítulo 29.6.10 escribiendo sobre él, pero estoy un poco desconcertado por cómo puedo codificarlo en C ++.
Quiero poder hacer que el dispositivo envíe su ID de dispositivo a la PC de control, para que la PC pueda tomar decisiones al respecto.
Respuestas:
Puede usar estas macros que se definen automáticamente cuando incluye
<avr/io.h>
:Para ATmega1280, se definen como:
in
iom1280.h
(que se incluye automáticamente<avr/io.h>
cuando compila el código para el m1280)Por ejemplo, esto enviará los tres bytes a través de UART:
Si realmente desea leer los fusibles, necesitaría usar la macro boot_signature_byte_get de
<avr/boot.h>
fuente
boot_signature_byte_get( 0x00 )
,boot_signature_byte_get( 0x02 )
,boot_signature_byte_get( 0x04 )