Ao programar um ATtiny ou ATmega, o avrdude imprime a assinatura do dispositivo, neste exemplo, é um ATtiny.
avrdude: Device signature = 0x1e910a
Posso ler esta assinatura em um dispositivo em execução usando o código C ++ (avr-gcc)? Para o ATmega1280, há um capítulo 29.6.10 escrevendo sobre isso, mas estou um pouco confuso sobre como posso codificá-lo em C ++.
Quero poder fazer com que o dispositivo envie sua ID de dispositivo de volta ao PC controlador, para que ele possa tomar decisões.
Respostas:
Você pode usar essas macros definidas automaticamente quando incluir
<avr/io.h>
:Para ATmega1280, eles são definidos como:
in
iom1280.h
(incluído automaticamente<avr/io.h>
quando você compila o código para o m1280)Por exemplo, isso enviará os três bytes via UART:
Se você realmente deseja ler os fusíveis, precisará usar a macro boot_signature_byte_get de
<avr/boot.h>
fonte
boot_signature_byte_get( 0x00 )
,boot_signature_byte_get( 0x02 )
,boot_signature_byte_get( 0x04 )