Hacking Guide till The Wii presentkort (7 / 8 steg)
Steg 7: PIC morsekod
PIC microcontrolers är programmerat i församlingen och kan vara lite knepigt att lära. Jag har egentligen inte tid att visa dig alla detaljer av programmering bilder, men jag kan börja du med lite morsekod program jag skrev för Wii release. Måste du programmera chips innan du löda in i krets eftersom programmering raderna kommer att användas av kortet.Om du vill skicka en morsekod använda sträng subrutiner "S" för en prick, "L" för ett streck, "CS" en skrivelse avgränsare, och "WS" för ett ord utrymme.
Kommandot sömn kommer att hålla PIC i energisparläget tills knappen trycks på kortet. Innan du skickar PIC att sova läste jag status för porten in i "sandbox" registret så att chipet skulle veta hur knappen förändrats.
Följande kod är skriven för PIC10F202.
Start init movlw b '00010101'; Konfigurera alternativ (svag pull-up, vakna på förändring) alternativet movlw 0x00; Framtida knappen variabel movwf stat movlw 0x08; Inställd GP0-2 utgångar tris GPIOWii samtal S; WII samtal L L samtal CS S call S samtal CS S samtal S samtal WS samtal S; FÖR samtal S samtal L S samtal CS samtal L L samtal L samtal CS samtal S L samtal S samtal WS samtal L; Anropet CS S call S call S call S samtal CS samtal S samtal WS samtal S; VINNA samtal L samtal L samtal CS samtal S call S samtal CS samtal L samtal S samtal WS movf GPIO, W; Kolla GPIO för sömn nop sömn goto Wii;---Subs---L; Dash bcf GPIO, 0 samtal fördröjning fördröjning samtal fördröjning bsf GPIO, 0 samtal fördröjning avkastning; Dot bcf GPIO, 0 kallar dröjsmål bsf GPIO, 0 samtal fördröjning returnCS; Utrymme mellan bokstäver samtal fördröjning samtal fördröjning returnWS; Utrymmet mellan orden kallar dröjsmål samtal fördröjning samtal fördröjning samtal dröjsmål returnera;---förseningar---dröjsmål, 199993 cykler movlw 0x3E movwf d1 movlw 0x9D movwf d2Delay_0 decfsz d1, f goto $+ 2 decfsz d2, f goto Delay_0; 3 cykler goto $+ 1 nop; 4 cykler (inklusive samtal) återvända i slutet. direktivet "slutet av programmet"