При программировании ATtiny или ATmega avrdude печатает подпись устройства, в данном примере это ATtiny.
avrdude: Device signature = 0x1e910a
Могу ли я прочитать эту подпись на работающем устройстве, используя код C ++ (avr-gcc)? Для ATmega1280 есть глава 29.6.10, в которой об этом написано, но я немного озадачен тем, как я могу написать код на C ++.
Я хочу, чтобы устройство могло отправлять свой идентификатор устройства обратно на управляющий ПК, чтобы ПК мог принимать решения по нему.
Ответы:
Вы можете использовать эти макросы, которые определяются автоматически при включении
<avr/io.h>
:Для ATmega1280 они определены как:
в
iom1280.h
(который автоматически включается<avr/io.h>
при компиляции кода для m1280)Например, это отправит три байта через UART:
Если вы действительно хотите прочитать предохранители, вам нужно использовать макрос boot_signature_byte_get из
<avr/boot.h>
источник
boot_signature_byte_get( 0x00 )
,boot_signature_byte_get( 0x02 )
,boot_signature_byte_get( 0x04 )