Det är en 8*8 röd/grön ledmatris, pic16f887(spel/grafik), pic12f675(audio)
Den har vibbrator, högtalare, joystick(från mobiltelefon), ficklampa, temperatursensor och en knapp.
Jag har inte en enda pinne ledig på huvudpicen förutom mclr.
PORTA driver trissorna som driver kolumerna.
PORTB= människo interface
PORTC= grön färg
PORTD= röd färg
PORTE= audioBus
Allt är kodat i ASM. Målet är ju att fördriva lite tid så asm är givet.
Jag har bara kodat snake och ett "köra bil på gatan utan att krocka" spel
Och tempövervakning, ficklampa.
Vilka fler spel kan man göra?
Min lillebror vill att jag ska göra en kopia av super smash bros....
Något lite lättare än det får det bli.
TMR0 gör hela tiden interrupt för att stänga av ljudet/vibbratorn när den ska så man behöver bara skriva:
movlw 0x10
movwf vibb_counter
för att få vibbratorn att köra en stund.
Först styrde nämligen huvud picen även ljudet men jag är för kass på räknare/interrupt så den kunde inte göra något annat samtidigt så skärmen slocknade när man gjorde ljud.
Men det löste sig med en dedikerad audio µC.
Hela konsollen är modulär så man kan dela den till 4 delar och om jag vill ha accerelometer i framtiden kan jag byta ut handenheten om jag vill osv.
Lite bilder:

Huvudenheten

Underifrån. Lite sladdar.

Den bygger lika mycket upp som ner.
Jag borde skaffa lackad koppartråd istället.
Behöver man bara klippa och löda eller måste man skrapa av lacket?

Från sidan

Handenheten

Underifrån

Kraftenheten

Ihopmonterad

Från sidan
Det är kanske lite svårt att förstå hur man håller den för att använda både kanpp och joystick, man håller handenheten i högerhand och vänster hand pekfinger på kanppen
Vänsterhanden håller man liksom som en pistol.
Jag har haft en hel den krångel med interrupter och spara undan W och STATUS när jag kör interrupten.
Det slutade med att jag bara tillåter interrupt precis innan jag kör min måla upp bild rutin för då vet jag att varken status eller w är viktiga.
Bilden ligger i ram och kartor ligger i eeprom.
alla pixel/linje/bild rutiner skriver till ram kopian av skrämen och draw rutinen flyttar bilden till skrämen.
Jag skulle helst ha draw rutinen som på interrupt i 80Hz eller något men det funkar ju som det är nu.
När jag hade krångel med interupten krashade spelt lite då och då.
Det var när jag hade modifierat Status eller höll på att läsa eeprom och en interrupt kom som det gjorde allt möjligt roligt.
Jag räknar ut slumptal på ett udda sätt, jag laddar w med något och xor:ar det med alla register i ram och det jag har kvar i slutet är ganska slumpar.
Jag har alla 3 timrar gående hela tiden.
Och audiobusen är väldigt simpel, jag har 3 bitars buss och 7st ljud.
När det är data på bussen kommer en av 7 ljudeffekter.
Vilka fler spel ska man göra?
Vilka mer funktioner ska man lägga till?