Specs: Asus P5W DH Deluxe, Core2Duo E6600, Corsair TWIN2X1024A-6400 1024MB, Maxtor DiamondMax 250Gb, Sapphire X1900XT, Tagan TG580-U15, Lian-Li PC6070B-PlusII, OS: WinXP Pro
De hardware:
Da's een LPC2103 onder de 2 dioden; ik neem aan dat jij ook zoiets gebruikt?
Which reminds me: dat demo-contest was eigenlijk wel enorm veel fun... Misschien es een mini-demo-contest opzetten? En dan wat beperkter dan wat in het verleden gebeurd is: naar mijn ervaring zorgt dat iig voor snellere demo's omdat mensen niet meer everything but the kitchen sink erin willen gooien, en bovendien is het makkelijker te jureren omdat je geen appels met peren meer hoeft te vergelijken.
Zou er bijvoorbeeld iemand mee willen doen met een contestje om uit te vogelen wie de mooiste effecten of het mooiste verhaal of whatever kan vertellen mbv een random (single-chip) uC, een HD44780-uC en een speakertje?
Sprite_tm wijzigde dit bericht 20-03-2008 21:51 (38%)
Relaxen und watchen das blinkenlichten. | Laatste project: 96x48 monochtome led-matrix as seen on GoT/EL!
Gebruikt een LPC2148 middels de fast i/o pinnen, waarop middels een paar weerstandjes gewoon bot het signaal op de VGA pinnen aangesloten wordt. VGA is immers een analoog signaal, maar ik gooi gewoon 3.3V via een 270r weerstand op de pootjes.quote:Sprite_tm schreef op donderdag 20 maart 2008 @ 21:42:
Doet me denken aan iets wat ik ooit voor een EL-demo gemaakt heb:
[afbeelding]
De hardware:
[afbeelding]
Da's een LPC2103 onder de 2 dioden; ik neem aan dat jij ook zoiets gebruikt?
Timer1 draait via de FIQ op de H-sync time (31.5kHz) en die genereert netjes de H-sync puls en elke 60Hz komt er ook nog es een V-sync bij. ARM draait overigens op 60MHz instruction CCLK en de PCLK op 30MHz. Ik kan het beeld denk ik nog wel 2x of 3x zo groot krijgen, of iig "faken".
Verder is een mogelijkheid om meer pinnen te gebruiken voor het uitsturen en zo 6 bits kleuren te maken
Zat er eerst aan de denken om gewoon de UART te gebruiken om tekst naar het beeld te schrijven, maar ik moet eerst eens even gaan kijken hoeveel resources de CPU nu gebruikt om het VGA beeld weg te schrijven. Als mijn interrupt te lang duurt, en ik dus te weinig tijd heb voor andere zaken dat gaat het niet lukken. Dan moet ik mijn beeldformaat verkleinen om zo meer tijd over te houden voor andere zaken.
Specs: Asus P5W DH Deluxe, Core2Duo E6600, Corsair TWIN2X1024A-6400 1024MB, Maxtor DiamondMax 250Gb, Sapphire X1900XT, Tagan TG580-U15, Lian-Li PC6070B-PlusII, OS: WinXP Pro
Ow, en om die extra procent snelheid eruit te trekken: Schop je FIQ-code naar RAM toe. NXP/Philips is erg goed geweest in het een rot-eind versnellen van het flash, maar ram is nog steeds sneller.
Relaxen und watchen das blinkenlichten. | Laatste project: 96x48 monochtome led-matrix as seen on GoT/EL!
Ik gebruik de onchip static RAM en het linkerscript wat aangepast zodat ik een bak "video" geheugen over heb. Ik kan denk ik nog wel wat aan de FIQ code doen, en ik denk ook nog dat ik die moet remappen nu ik het zo even bekijk. Heb al wel de MAM anders ingesteld maar wellicht valt daar nog wat te halen.quote:Sprite_tm schreef op donderdag 20 maart 2008 @ 22:02:
Hint: Duik goed in den ARM assembly, en onderschat geintjes als flags conditioneel setten en instructies conditional kunnen maken absoluut niet: iirc kan je bijvoorbeeld beter een 6-tal instructies conditioneel maken dan eroverheenspringen ivm pipelining-issues. Combineer dat met goed gebruik van de barrel-shifter en je kan je code erg compact maken, maar let dus wel goed op: als je de arm gaat behandelen als een pic, avr of x86-processor gaat je code 2x zo groot worden.
Ow, en om die extra procent snelheid eruit te trekken: Schop je FIQ-code naar RAM toe. NXP/Philips is erg goed geweest in het een rot-eind versnellen van het flash, maar ram is nog steeds sneller.
Wat betreft de pipeline issue's, heb je helemaal gelijk in. Als ie zijn instructies netjes gaat fetchen, decoden en executen en je gaat netjes je pipeline volstampen, en je hebt dan ineens een conditionele instructie dan moet mag je je pipeline gaan legen voordat verder kan. Nu scheelt het dat de ARM7 een 3-stage pipeline heeft (meen ik) maar het kost je inderdaad veel nutteloze tijd. Soms ontkom je er helaas niet aan
Ik heb een speciaal boek over de ARM opbouw en de instructieset etc, genaamd "ARM System-on-chip architecture" van Steve Furber. Enorme aanrader wanneer je bezig bent met deze processor.
Heb zelfs al wat leuke instructies gevonden waarmee je de CPSR en LR kan terug zetten, doormiddel van zo'n ldmfd met de PC en een leuk dakje
IJnte wijzigde dit bericht 20-03-2008 22:40 (4%)
Specs: Asus P5W DH Deluxe, Core2Duo E6600, Corsair TWIN2X1024A-6400 1024MB, Maxtor DiamondMax 250Gb, Sapphire X1900XT, Tagan TG580-U15, Lian-Li PC6070B-PlusII, OS: WinXP Pro
Even voor de volledigheid: ik neem aan dat je 'branch' ipv 'conditionele instructie' bedoelt?quote:IJnte schreef op donderdag 20 maart 2008 @ 22:34:
[...]
Wat betreft de pipeline issue's, heb je helemaal gelijk in. Als ie zijn instructies netjes gaat fetchen, decoden en executen en je gaat netjes je pipeline volstampen, en je hebt dan ineens een conditionele instructie dan moet mag je je pipeline gaan legen voordat verder kan.
En arm is mijn favo soort assembly. Tis net perl: het is redelijk doordacht en snel maar je kan zo enorm veel functionaliteit in een instructie stoppen... tis bijna een spelletje om de meest doordachte assembly mogelijk te bedenken.
Relaxen und watchen das blinkenlichten. | Laatste project: 96x48 monochtome led-matrix as seen on GoT/EL!
Maar de hardware is waarschijnlijk iets te heftig voor het meedoen van een demo contest
wacco webstack - blog - low budget, open source VGA compatible video card | homeserver
FPGA oidquote:wacco schreef op vrijdag 21 maart 2008 @ 00:27:
Heh, met al die schermen hier moet ik ook even
[afbeelding]
Maar de hardware is waarschijnlijk iets te heftig voor het meedoen van een demo contest
Specs: Asus P5W DH Deluxe, Core2Duo E6600, Corsair TWIN2X1024A-6400 1024MB, Maxtor DiamondMax 250Gb, Sapphire X1900XT, Tagan TG580-U15, Lian-Li PC6070B-PlusII, OS: WinXP Pro
Als we weer zo'n '250 punten' limiet doen ben ik er al doorheen met alleen de fpga
wacco webstack - blog - low budget, open source VGA compatible video card | homeserver
Owja daar heb ik wat van meegekregen jaquote:wacco schreef op vrijdag 21 maart 2008 @ 11:10:
Zie de link in m'n signature. Een flinke FPGA plus een lading chips eromheen ja
Als we weer zo'n '250 punten' limiet doen ben ik er al doorheen met alleen de fpga
Specs: Asus P5W DH Deluxe, Core2Duo E6600, Corsair TWIN2X1024A-6400 1024MB, Maxtor DiamondMax 250Gb, Sapphire X1900XT, Tagan TG580-U15, Lian-Li PC6070B-PlusII, OS: WinXP Pro
Ja, branch instructies legen, en vullen vervolgens weer de hele pipeline. Dit kost je dus extra clockslagen (3) wat niet altijd wenselijk is maar waar ook niet altijd onderuit te komen is. Met conditionele instructies is het ook mogelijk dat je je pipeline omzeep helpt omdat hij al de volgende instructie fetched en vervolgens niet tot uitvoeren komt omdat de conditie niet klopt. Dan zal de PC vehoogt moeten worden en daarna kan de pipeline verder met fetch, decode execute.quote:Sprite_tm schreef op donderdag 20 maart 2008 @ 23:18:
[...]
Even voor de volledigheid: ik neem aan dat je 'branch' ipv 'conditionele instructie' bedoelt?
En arm is mijn favo soort assembly. Tis net perl: het is redelijk doordacht en snel maar je kan zo enorm veel functionaliteit in een instructie stoppen... tis bijna een spelletje om de meest doordachte assembly mogelijk te bedenken.
Maar idd de ARM assembly is erg goed te begrijpen en extreem krachtig. Er komen soms hele mooie instructies voorbij die gewoon in 1 cclk kunnen worden afgehandeld. Mooie code b.v. is
asm:
1
| orr r9, r9, r10, LSL #6 |
Vindt het wel lache dat je dat allemaal in 1 regel kan gooien
of code besparing:
asm:
1
2
| ldrb r10, [r9] add r9, r9, #1 |
Wordt gewoon
asm:
1
| ldrb r10, [r9], #1 |
Welke overigens (als ik het goed heb) niet in 1 maar gewoon in 2 instructies uitgevoerd wordt.
Maar juist vanwege de krachtige instructieset is het gewoon een krachtige processor.
Specs: Asus P5W DH Deluxe, Core2Duo E6600, Corsair TWIN2X1024A-6400 1024MB, Maxtor DiamondMax 250Gb, Sapphire X1900XT, Tagan TG580-U15, Lian-Li PC6070B-PlusII, OS: WinXP Pro
Reg. datum: 01 juni 2006
Het gaat overigens om dit bordje.
ik ben een pulsgenerator aan het maken met een atmega8.
het bereik moet 100 hz tot 100Khz zijn, met 50% duty cycle.
de basis heb ik werkend, met timer1 in CTC mode.
het frequentiebereik is meer dan genoeg, gaat makkelijk over de 100Khz heen, maar ik heb een probleem met het regelen van de frequentie.
als ik hem op 100hz laat lopen, kan ik zonder problemen in stappen van 1hz verhogen of verlagen.
zodra de timer op 100Khz loopt, zijn die stappen gigantisch (als ik de frequentie in stappen van 1Khz laat zakken, gebeurt er de eerste paar keer niets, om vervolgens naar 90Khz te zakken)
iemand een idee hoe ik de frequentie met een beetje constante stapgrootte kan regelen?
mijn code is het volgende (GCC)
C:
1 | #define F_CPU 8000000UL
|
de code om de frequentie te verhogen of verlagen staat er niet bij, dat bestaat uit een paar IF statements in de for loop, die kijken of een knop is ingedrukt, en daarna de frequentie verhogen / verlagen
alvast bedankt
Reg. datum: 01 juni 2006
Heb gisteren op alle vrije poorten pulldown weerstanden gezet (4k7 naar gnd), maar is nog steeds het zelfde, af en toe pakt hij hem wel, maar is bij lange na niet stabiel. Een maat van mij heeft het zelfde probleem met het zelfde bordje. Iemand nog andere ideeën?quote:Invisible_man schreef op vrijdag 21 maart 2008 @ 14:37:
Ik ben de laatste tijd weer wat meer bezig met microcontrollers en heb nu bij futurlec.com twee pic bordjes besteld (pic16F877a en pic18f8720) welke ik via de paralele poort programeer. Met het pic 16F877a bordje gaat dit perfect, maar de pic18f8720 heeft er heel wat meer moeite mee. Dit begint al met herkennen van de pic vanuit de programeersoftware (WinPic800), maar ook als hij hem eindelijk herkent bij het laden van het programma. Ik heb zelf het idee dat dit kan liggen aan de zwevende poorten die nu van alles opvangen en zo de uC in de war gooien. Nou kan ik aan alle poorten pulldown weerstanden zetten, maar dat is een flink karwei. Kan ik dit ook anders oplossen (heb al iets gelezen dat je alle poorten als uitgang moet programeren, maar dan moet je wel eerst iets kunnen programeren) en hoe doen jullie dit met jullie dev-bordjes.
Het gaat overigens om dit bordje.
Join the dark side, we have cookies :)
You need only two tools. WD-40 and duct tape. If it doesn't move and it should, use WD-40. If it moves and shouldn't, use the tape.
Reg. datum: 01 juni 2006
Volgens mij niet (zit overal aan elkaar genkoopt).quote:Atlas schreef op zondag 23 maart 2008 @ 15:07:
Zwevende ground?
Reg. datum: 29 november 2004
www.hanzesolarteam.nl
Reg. datum: 01 juni 2006
Heb het even geprobeerd op HVP, maar volgens de handleiding die bij het bordje zit moet het juist met LVP.quote:Zjosh schreef op zondag 23 maart 2008 @ 18:32:
Mijn PIC had last van het feit dat ik LVP perongeluk nog aan had staan. Dit gaf echt de meest vreemde symptomen en de brut viel om de haverklap uit enzo. Misschien dat eens aanpassen.
Iemand mischien nog tips voor een programmer voor linux die via de parallele poort kan programeren?
Edit: Heb nu tussen het programeer printje en het pic18F8720 bordje een korter kabeltje gezet (15cm) ipv de meegeleverde kabel van een meter, maar ook dat lost niets op. Knap irritant wordt dit
Invisible_man wijzigde dit bericht 24-03-2008 00:24 (16%)
iemand nog een idee? zit zelf al dagen te zoeken, maar kom er niet meer uitquote:nick_haak schreef op zondag 23 maart 2008 @ 08:07:
Hallo allemaal,
ik ben een pulsgenerator aan het maken met een atmega8.
het bereik moet 100 hz tot 100Khz zijn, met 50% duty cycle.
de basis heb ik werkend, met timer1 in CTC mode.
het frequentiebereik is meer dan genoeg, gaat makkelijk over de 100Khz heen, maar ik heb een probleem met het regelen van de frequentie.
als ik hem op 100hz laat lopen, kan ik zonder problemen in stappen van 1hz verhogen of verlagen.
zodra de timer op 100Khz loopt, zijn die stappen gigantisch (als ik de frequentie in stappen van 1Khz laat zakken, gebeurt er de eerste paar keer niets, om vervolgens naar 90Khz te zakken)
iemand een idee hoe ik de frequentie met een beetje constante stapgrootte kan regelen?
mijn code is als volgt:
[knip]
de code om de frequentie te verhogen of verlagen staat er niet bij, dat bestaat uit een paar IF statements in de for loop, die kijken of een knop is ingedrukt, en daarna de frequentie verhogen / verlagen
alvast bedankt
-------------8< -------------8< -------------8< -------------8< -------------8< -------------
Wellicht kan die timer maar alleen "even" waarden gebruiken, of wellicht alleen maar waarden waarvan de basis 2x is. Anders kan de processor wellicht de deling niet uitvoeren. Je zou eens moeten kijken hoe de timer is opgebouwd. Telt de timer gewoon door met stapjes van 1 totdat de waarde is bereikt, en geeft ie dan een matchquote:nick_haak schreef op maandag 24 maart 2008 @ 08:33:
[...]
iemand nog een idee? zit zelf al dagen te zoeken, maar kom er niet meer uit
Specs: Asus P5W DH Deluxe, Core2Duo E6600, Corsair TWIN2X1024A-6400 1024MB, Maxtor DiamondMax 250Gb, Sapphire X1900XT, Tagan TG580-U15, Lian-Li PC6070B-PlusII, OS: WinXP Pro
voor 100khz geeft deze formule 39,5quote:Springuin schreef op maandag 24 maart 2008 @ 09:25:
Het heeft er denk ik mee te maken dat het verschil tussen 100KHz en 90KHz maar een stapje is voor je atmega. Ik neem aan dat je een formule gebruikt om uit te rekenen wat je in je timercontrolregisters schrijft. Reken die formule eens met de hand na voor verschillende waarden, dan zul je zien dat er het een en ander afgerond wordt.
voor 90khz is het 43,9444444444444
ik denk inderdaad dat je gelijk hebt, het verschil tussen 100khz en 99khz bijvoorbeeld is erg klein.
99khz geeft 39,904040404
nu eens kijken of ik het op kan lossen, lijkt best lastig te zijn zeg
Reg. datum: 29 november 2004
www.hanzesolarteam.nl
thnx
Pagina: 1 2 3 4 5 6 7 8 9 10 11 12 ... 43 44 45 46 last
