"Tvspel" med avr.
"Tvspel" med avr.
Läste för rätt länge sedan om dåren/dårarna som byggde tetris/pong med för spel på tv:n med hjälp av en pic. Jag tänkte att jag inte skulle va sämre men att jag skulle göra det med en avr, ATmega16 för att vara mer exakt. Jag har i mina yngre år programmerat några liknande enkla spel, dock för PC. Så det som var nytt var att få ut det på TV:n.
Efter att ha spenderat någon timma med att ens lyckas få ut några linjer i sync så var det äntligen dags att börja med det roliga. Efter att ha fixat till 2 st "pong paddar" börjar dock beräkningarna för vad som ska skickas till tv:n ta för lång tid. Jag vill inte påstå att jag är den som kodar snålt och dessutom så skrev jag i C så det skulle nog gå kapa ett par instruktioner om jag skrev i asm istället. Hursomhelst dit jag ville komma med den här tråden är att ge lite cred till de som lyckats med det här. Kanske någon här som gjort det?
Edit: kolla in http://www.rickard.gunee.com/projects/v ... tetris.php
Efter att ha spenderat någon timma med att ens lyckas få ut några linjer i sync så var det äntligen dags att börja med det roliga. Efter att ha fixat till 2 st "pong paddar" börjar dock beräkningarna för vad som ska skickas till tv:n ta för lång tid. Jag vill inte påstå att jag är den som kodar snålt och dessutom så skrev jag i C så det skulle nog gå kapa ett par instruktioner om jag skrev i asm istället. Hursomhelst dit jag ville komma med den här tråden är att ge lite cred till de som lyckats med det här. Kanske någon här som gjort det?
Edit: kolla in http://www.rickard.gunee.com/projects/v ... tetris.php
Det här är det en på forumet som gjort (dow):
http://method.merseine.nu/Electronics/A ... using_VHDL
Edit: ok inte AVR men ändå
/Johan
http://method.merseine.nu/Electronics/A ... using_VHDL
Edit: ok inte AVR men ändå

/Johan
Gjorde ett pong till min ledsnurra för nästan ett halvårsen, men med ~10fps så fanns där ganska mycket tid i mellan visningarna att generera bilderna på
http://www.geekjoan.com/forum/viewtopic ... sc&start=0
ett sätt skulle vara att använda en slav-avr som bara spottar ut bilden till tvn från ett minne eller nått.
http://www.geekjoan.com/forum/viewtopic ... sc&start=0
ett sätt skulle vara att använda en slav-avr som bara spottar ut bilden till tvn från ett minne eller nått.
Det är ju just problemet att klara beräkningarna samtidigt som man pratar med tv:n som är problemet. Jag har bara 8 MHz kristaller hemma nu och det borde ju ge 8 instruktioner/uS. En scanline tar 52 uS. Antag då att jag vill ha 128 pixlar i x-led. Det ger ~3 instuktioner/pixel.. Inte allt för mycket att spela på.
Visst verkar det ok att fixa med VHDL men det är ju inte själva spelet jag är ute efter.. Ja sen ska det ju läggas på ljud också..
Visst verkar det ok att fixa med VHDL men det är ju inte själva spelet jag är ute efter.. Ja sen ska det ju läggas på ljud också..

Det här med spel......
Jag kan inte riktigt förstå hur man programmer tex ett pong spel.
Det jag menar är själva "intelligensen" i spelet.
Det svåraste måste ju vara att göra motståndaren..... eller gör man bara human vs human kanske?
Ingen som pallar dra en gravt förenklad algoritm för ett pong-spel, på svenska, alltså inget särskilt prog-språk utan pseudo-kod.
Vore intressant.
eder - jonkers
Jag kan inte riktigt förstå hur man programmer tex ett pong spel.
Det jag menar är själva "intelligensen" i spelet.
Det svåraste måste ju vara att göra motståndaren..... eller gör man bara human vs human kanske?
Ingen som pallar dra en gravt förenklad algoritm för ett pong-spel, på svenska, alltså inget särskilt prog-språk utan pseudo-kod.
Vore intressant.
eder - jonkers
-
- Inlägg: 515
- Blev medlem: 31 maj 2003, 10:42:37
- Ort: Helsingborg
jag försöker föreställa mig hur jag skulle koda en boll som slåss till och flyger iväg med viss hastighet och vinkel men kan inte se hur jag skulle kunna göra ngt sånt (pic-assembler då).
all programmering som jag har gjort (mycket PLC, en del uC nu) har gått ut på väldigt "boolean" och logiska flöden. typ: om knapp ett = till så motor 2 ner samt skicka kod x på port y.
det här med spel är lixom ingenting jag ens kan föreställa mig hur jag ska göra.
måste bli en hel del matte?
all programmering som jag har gjort (mycket PLC, en del uC nu) har gått ut på väldigt "boolean" och logiska flöden. typ: om knapp ett = till så motor 2 ner samt skicka kod x på port y.
det här med spel är lixom ingenting jag ens kan föreställa mig hur jag ska göra.
måste bli en hel del matte?
-
- Inlägg: 17
- Blev medlem: 4 december 2003, 13:26:46
- Skype: alexander.lundh
- Ort: Linköping
- Kontakt:
Pong är ruggigt enkelt att programmera
strombom la upp en länk till mitt+2 kompisars projekt i skolan, där kan du tanka ner rapporten och koden också om du är intresserad.
Det är inte jättebra implimenterat, beroende på att vi inte kunde använda de kretsar vi hade tänkt från början osv, men det är iaf en fungerande version
Just med motståndaren så gjorde vi det ganska lätt för oss - vi lät helt enkelt motståndaren följa bollens y-position med en viss maxhastighet. Denna hastighet varierade vi med svårighetsgraden.
Det innebär alltså att om bollen åker för snabbt så hinner inte motståndaren med. Sedan kan du ju lägga till en viss osäkerhet också.
Angående att beräkna bollpositioner, hastigheter och studsar så är inte heller detta särskillt svårt. Det enda egentliga problemet med pong är att det är mycket värden som skall lagras, och det krävs en ganska stor cpld för att ordna allt (vi gick ifrån 2 cplder till ~5 tror jag, bara för att de större vi tänkte använda var slut)
Edit: Alltså, koden är ju för CPLD'er, så det kanske inte ger så mycket.
strombom la upp en länk till mitt+2 kompisars projekt i skolan, där kan du tanka ner rapporten och koden också om du är intresserad.
Det är inte jättebra implimenterat, beroende på att vi inte kunde använda de kretsar vi hade tänkt från början osv, men det är iaf en fungerande version

Just med motståndaren så gjorde vi det ganska lätt för oss - vi lät helt enkelt motståndaren följa bollens y-position med en viss maxhastighet. Denna hastighet varierade vi med svårighetsgraden.
Det innebär alltså att om bollen åker för snabbt så hinner inte motståndaren med. Sedan kan du ju lägga till en viss osäkerhet också.
Angående att beräkna bollpositioner, hastigheter och studsar så är inte heller detta särskillt svårt. Det enda egentliga problemet med pong är att det är mycket värden som skall lagras, och det krävs en ganska stor cpld för att ordna allt (vi gick ifrån 2 cplder till ~5 tror jag, bara för att de större vi tänkte använda var slut)
Edit: Alltså, koden är ju för CPLD'er, så det kanske inte ger så mycket.