Hallo allemaal!
Ik ga beginnen met een uC projectje. Daarover had ik een paar vraagjes:
1) Is het mogelijk, om zeg maar meerdere processen tegelijk plaats te laten hebben? In mijn opzetje is het de bedoeling dat op een 7segments display om de zoveel seconden een cijfer komt te staan. Nou kan ik dat wel sequentieel gaan doen zeg maar, maar zodra het getal er staat en je gebruikt in een lus een x aantal keer de nop-instructie, dan kun je verder dus niets doen. De bedoeling is dan ook, dat als er een schakelaartje gesloten wordt, meteen het getal op het display verandert. Zo niet? Dan nog x aantal seconden laten staan
En zo ja: hoe?
2) Bestaat er een compiler die zeg maar een hogere programmeertaal omzet naar assembly? En zo ja: welke?
3) Zijn er simulatie programmatjes voor de code (in assembly)? En zo ja: welke?
Alvast bedankt!
;-)
Bastiaan
Bachelor of Engineering -- Microcontrollers AVR, PIC (asm, C), PC applicaties (C, C++), Webpages (HTML, CSS, PHP, SQL), Rail-infra engineer
Je vraag 1 is universeel ongeacht welke controller je neemt, daar kan ik dus alleen antwoordt op geven. Voor vraag 2 en 3 moet je ff vertellen welk merk controller je wilt gaan gebruiken.
1)Nee, een controller kan enkel sequencieel werken. Maar... dat doet je Pentium 4 in je pc ook. Het lijkt alleen of die alles tegelijk doet omdat die elk deelproces heel kort even de tijd geeft om wat te doen en daarna een andere proces weer even de tijd geeft, enz.
Oftwel, het werkt sequencieel maar je kunt zelf met de software het zo maken dat het "net lijkt" alsof het tegelijk gebeurt.
Hmm, heb jij een idee dan hoe ik dat display kan aansturen. Er moet zeg maar een status op komen, dus afwisselend een A en daarna een getal. Deze moeten er voor zeg 3 seconden steeds opblijven staan. Daarna de status van B en een getal etc. Dan weer A etc. etc.
Maar zodra er een pinnetje hoog wordt gemaakt, moet er meteen iets gebeuren.
Als ik dus constant zo'n loop maak om die drie sec. te vullen, is de kans vrij klein dat er gedrukt wordt op het moment dat de status geupdate wordt tussen telkens die drie seconden in. Dus hoe kan ik ervoor zorgen dat er een stukje script wordt uitgevoerd zodra er op een knopje gedrukt wordt, terwijl die 3 seconden ongeveer gelijk blijven??
Bastiaan
Bachelor of Engineering -- Microcontrollers AVR, PIC (asm, C), PC applicaties (C, C++), Webpages (HTML, CSS, PHP, SQL), Rail-infra engineer
Je moet dan gebruik maken van interrupts. Dat is iets te uitgebreid om dat nu zo ff snel toe te lichten, ik raad je aan ff via google te zoeken naar wat het precies inhoud.
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
> Je moet dan gebruik maken van interrupts.
lijkt me geen goede raad voor een beginner. kijk eens op http://www.voti.nl/cursus/index.html, opdracht 'knipperen'.
Het idee dat daar gebruik wordt is om in plaats van 3 seconden te wachten een lus te maken waarin je bv 30ms wacht, dan de schakelaar controleert en eventueel iets doet, en dat natuurlijk 100 keer om aan die 3 seconden te komen.
Een stap verder is om een hoofdlus te maken met een delay (bv weer die 10ms) en verder alles op basis van tellen te doeb, dus in de lus tel je, na 100 stappen moet je het volgende op je display zetten.
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
> 2) Bestaat er een compiler die zeg maar een hogere programmeertaal omzet naar assembly? En zo ja: welke?
Dat is wat een compiler doet, dus als je nu nog even zegt welke microcontroller en welke programmeertaal je bedoelt 
> 3) Zijn er simulatie programmatjes voor de code (in assembly)? En zo ja: welke?
ja, idem.
Wiebo
For Every Existing Problem Exists a Solution, Just Try To Find It...
verder op vraag 1, probeer eerst eens een flowchart te maken... HOE moet WAT, WAAR en WANNEER gecontroleerd worden, verwerk informatie, en HOE, WAT, WAAR en WANNEER moet deze uitgevoerd worden... Da's de basis van iedere computer/processor/controller...
(START PROGRAMMA)-> programma gestart?
1) zo ja, doe dan dit
2) zo nee, doe dan dat
....
Eens een flowchart klaar, dan heb je eigelijk je programma, alleen nog ff uittikken op ne compiler en in die PIC frotten...