Dotaz na převod z C do HEX

Dobře, žes to nevzdal, když se Ti řešení nenaservírovalo na zlatém podnosu, ale že sis to našel. Zkusím tedy dovysvětlit, co dané pojistky znamenají. Pojistky u procesorů (a hlavně jejich umístění) jsou různě, takže datasheet potřebuješ pokaždé.

EXT :
bity 7-3 nejsou použité - nechávají se na 1 (nenaprogramováno)
bity 2-1 = BOOTSZ1:0 udávají velikost paměti pro bootloader v případě, že je BOOTRST naprogramována
bit 0 = BOOTRST - pokud je naprogramována, po resetu procesor startuje na adresu určenou BOOTSZ1:0, jinak skáče na 0

High :
bit 7 = RSTDISBL - RESET pin se dá použít jako IO, pokud naprogramuješ tuto pojistku. V tomto případě se ale procesor dá znova přeprogramovat pouze :

  1. pokud máš napsaný tzv. bootloader nebo pokud se umí aplikace přeprogramovat sama (vetšinou se ale na to používá bootloader).
  2. pokud použiješ HV programování.
    bit 6 = DWEN - při naprogramování povoluje debugWIRE
    bit 5 = SPIEN - z výroby je napogramovaná a pokud bys ji zakázal, znemožníš nahrávání přes SPI. Musel bys ji ale zakázat přes HV programování, protože přes SPI programování není přístupná.
    bit 4 = WDTON - trvale zapíná WatchDog, který pak programově nelze vypnout
    bit 3 = EESAVE - pokud ji naprogramuješ, pak chip erase nemaže EEPROM
    bity 2-0 = BODLEVEL2:0 - Nastavují napětí, při kterém dochází k resetu procesoru - hodnoty jsou v datasheetu. Používá se v případě použtí interní EEPROM a pak pokud máš periferie háklivé na nízké napětí.

Low :
bit 7 = CKDIV8 - nastavuje prescaler systémových hodin na 8 při startu MCU. Prescaler se dá nastavovat i programově, takže není nutné tuto pojistku programovat - tohle je pojistka, která Ti způsobila nefunkčnost zařízení, protože to sice jelo, ale systémové hodiny byly dělené 8, tudíž vše bylo 8x pomalejší. A vzhledem k tomu, že se tam příkazy posílají po UARTu, pak byla i rychlost UARTu nastavená de-facto na 1/8 toho, co teď.
bit 6 = CKOUT - pokud je naprogramovaná, jsou systémové hodiny posílány na pin CLKO
bity 5-4 = SUT1:0 - startup time - rozběh procesoru po zapnutí napájení kvůli stabilizaci oscilátoru - hodnoty viz datasheet
bity 3-0 = CKSEL3:0 - výběr systémových hodin MCU (pohonu MCU) - opět viz datasheet

P.S.: Tohle všechno je ale v tom datasheetu napsané …