Ik wil beginnen met µC te programmeren.
Liefst in C of BASIC omdat ik deze talen toch al wat beheers vanuit PC-Programming.
Nu ben ik op deze site op het programmer bord STK500 gestoten. Helaas werkt dit bord nog op RS232 en had toch graag een USB variant gehad.
Kan er iemand een goede starterkit aanraden die op USB werkt?
Basic dingen zijn voldoende. Het aansturen van LCD's etc is nog niet nodig.
Alvast bedankt.
plantrekker
True story bro!
Persoonlijk zou ik een losse programmer komen en geen starters kit. Zo'n starters kit heb je al snel 'uitgespeeld' en gebruik je hem enkel nog als onhandig grote programmer.
De AVRISP mkII is een hele goede op usb, nog nooit problemen mee gehad. Samen met wat ontkoppel c's, enkele AVR's, breadboards, sensors.. kom je een stuk verder denk ik.
Zelf een 'Hello World' schakelingetje maken is leerrijker dan het met een starters kit doen.
Het zit em erin dat ik een schakeling wil ontwerpen die een µC vereist (vanwege de simpelheid).
In principe kan ik het ook oplossen met een boel 555's maar aangezien ik de stap toch eens wil maken kan ik dat beter nu doen.
Het is de bedoeling dat er een aantal ingangen worden gelezen, en dat deze uitgangen met een tijdsverloop sturen.
Ik wou het eerst testen op een developper board, vandaar de vraag.
Die STK doet dat prima - je hebt ook nog wel wat ruimte om er zelf wat omheen te klussen. Indien van toepassing kun je al een hoop doen met de LEDs en buttons op het board.
Een AVR laat zich ook prima in C programmeren - de architectuur is daar een stuk geschikter voor dan bijvoorbeeld 8051. Toch kan het geen kwaad je (zeker als je met timing aan de gang gaat) in assembly te verdiepen. Het levert je een stuk meer begrip van het ding op dan alleen C en je snapt ook waarom je constructies die in PC-C prima werken op een μC beter achterwege kunt laten.
plantrekker
True story bro!
Op 21 mei 2009 14:48:21 schreef Marco69:
Die STK doet dat prima - je hebt ook nog wel wat ruimte om er zelf wat omheen te klussen.
Dat is zeker waar, om aan te leren is het makkelijk omdat de schakeling voorgekauwd is en wat uitbreiden zal wel geen probleem zijn. Maar eens je code werk, kan je beginnen met de schakeling her op te bouwen op breadboard en dan heb je weer niets aan die STK en zou ik liever een compacte en degelijke programmer in de plaats hebben.
Ik wil niets opdringen he! De keuze moet je zelf maken.
Dus best gewoon een programmer zoals voorgesteld.
Schakeling simuleren op de PC en daarna testen op breadbordje.
Kan een µC om met lange wachttijden (uren) op timer-gebied of moet ik hiervoor externe componenten voorzien?
Ik heb zelf voor de AVR variant deze 2 borden van MikroElektronica aangeschaft.
Voor minder dan wat je voor een stk500 betaald heb je al veel meer.
Link: http://www.tigal.com/product.asp?pid=1448
en
Link: http://www.tigal.com/product.asp?pid=1394
En ze hebben nog veel meer ook voor PIC's en ARM's.
link: http://www.tigal.com/
Er zijn ook een hoop addon plug bordjes tekoop voor een habbekrats.
Je kan dus heel snel wat ontwikkelen.
plantrekker
True story bro!
De interne clock van de AVR is niet precies. Het hangt er dus van af hoe groot de afwijking mag zijn.
Als het rdelijk juist moet zijn dan gebruik je een externe clock. Je heb hiervoor enkel een kristal en 2 c'tjes (22pF) nodig. Als frequentie van het kristal neem je best een waarde die deelbar is door 1024, zo kan je intervallen van exact 1 sec creëren
Ik was sowiso al van plan om een externe clock te gebruiken.
Die frequentietip is wel handig 
Maar nu is mijn vraag, kan die AVR meer dan 1 instructie tegelijk verwerken?
BV:
Ingang 1 komt hoog = 2 uur uitgang 1 aansturen.
Ondertussen komt Ingang 2 hoog die dan iets anders moet doen.
Zit hij dan vast in zn 2 uur durende loop van ingang 1 of kan hij dat apart verwerken?
plantrekker
True story bro!
Hangt er van af hoe je het programeert, je kan perfect de situatie creëren waarbij de avr in een 2u durend loopje niets zit te doen. Dat is natuurlijk niet de bedoeling 
Je voorziet een variabele voor elke ingang in je programma.
In je main loop scan je de ingangen, voor de ingangen die actief zijn zet je de overeenkomstige teller op een bepaalde waarde en maak je de overeenkomstige uitgang hoog.
Daarna controleer je of er bepaalde tellers al op 1 staan, zoja dan maak je de overeenkomstige uitgang laag.
Via een interrupt (bvb elke seconde) decrementeer je alle tellers die niet op nul staan. De interrupt onderbreekt de main loop, voert zijn taak uit en laat de main loop terug voort lopen. Hierdoor komt de AVR nooit in een wacht loop.
klein is fijn
Moderator
Op 21 mei 2009 16:38:24 schreef plantrekker:
Als frequentie van het kristal neem je best een waarde die deelbar is door 1024, zo kan je intervallen van exact 1 sec creëren
Dat maakt niets uit, de meeste AVR's hebben wel een CTC (Clear Timer on Compare Match) mode. Daarmee kan je een 1 seconde interrupt maken met zowat ieder kristal.
de architectuur is daar een stuk geschikter voor dan bijvoorbeeld 8051.
Laat free_electron t maar niet lezen
.
Maar nu is mijn vraag, kan die AVR meer dan 1 instructie tegelijk verwerken?
Een microcontroller kan zelden meerdere instructies tegelijkertijd verwerken, wat jij wil kan prima maar het is geen goed idee de microcontroller in een wachtlus "vast te houden".
Groeten, Bram
[Bericht gewijzigd door bprosman op (48%)]
plantrekker
True story bro!
Op 21 mei 2009 17:21:38 schreef klein is fijn:
[...]Dat maakt niets uit, de meeste AVR's hebben wel een CTC (Clear Timer on Compare Match) mode. Daarmee kan je een 1 seconde interrupt maken met zowat ieder kristal.
Als je na de prescaling al een komma getal hebt, kan je het vergeten.