programmeren proces met uC

Alle vragen m.b.t digitale schakelingen m.b.v. losse i.c's
en oplossingen m.b.v. PIC processoren.
Plaats reactie
pirate
Berichten: 30
Lid geworden op: ma 14 nov 2005, 9:44

programmeren proces met uC

Bericht door pirate »

ik heb een proces simulatie dat een wasmachine moet voorstellen. bestaand uit een microcontroller bord met daarop 8 uitgangen en 8 ingangen plus en ground. een proces bord dat bedoeld is om aan te sluiten op een pld en daarvoor hebben we een tussenbordje gemaakt dat de proces bord aanstuurt met transistors. alle ingangen en uitgangen zijn al zo opgezet dat het door de uitgangen van de uC aangestuurd kan worden. de ingangen van de uC worden gebruikt om de schakelaars van het proces bord aante sluiten en daarmee bij voorbeeld het wassen programma te starten.

electronisch werkt alles en dat is het probleem ook niet. wat wel het probleem is dat ik niet bekend ben met het programmeren van een uC. ik heb het boek dat geleverd is bij het uC bord(over assamblee taal en de instructie set) gelezen en snap het ook wel. ik weet alleen niet hoe ik iets moet opzetten voor een redelijk programmatje. ik weet niet hoe ik het moet aanpakken dat wanneer ik met een schakelaar 1 keer set dat dan bv het spoelen begint.

heeft iemand hier ervaring mee en kan die mij een een beetje op weg helpen uitleggen hoe ik dit het beste kan doen.

het is trouwens geen optie om de uC weg telaten en het met ic te doen want het is een school opdracht dat ik iets moet aansturen met een uC

alvast bedankt
Mat Janssen
Moderator
Moderator
Berichten: 11595
Lid geworden op: wo 10 dec 2003, 18:36
Locatie: nederweert. .. .. .. .. .. .. .. .. .

Bericht door Mat Janssen »

Wat voor een uc is het? misschien kan ik dan iet specifieks vertellen over dat dang dan.
signature ruimte te huur ;-)
Verhuurd :!:
pirate
Berichten: 30
Lid geworden op: ma 14 nov 2005, 9:44

Bericht door pirate »

Mat Janssen schreef:Wat voor een uc is het? misschien kan ik dan iet specifieks vertellen over dat dang dan.
http://bitsim.nl/

dit bord heb ik

een klein beetje hoe ik het moet aanpakken heb ik al wat aan...
pirate
Berichten: 30
Lid geworden op: ma 14 nov 2005, 9:44

Bericht door pirate »

en kun je er wat mee.

zo niet kun je me dan vertellen hoe er normaal mee word gewerkt met het programmeren en verwerken van de gegevens.

ik hoop antwoord te krijgen
pirate
Berichten: 30
Lid geworden op: ma 14 nov 2005, 9:44

Bericht door pirate »

mischien moet ik even beter uitleggen wat het programma ongeveer moet doen. zie tekening onderin voor opzet proces.

het is de bedoeling dat de microprocessor steeds de ingangen in leest en dan op de uitgangen een patron zetten na aanleiding van de ingangen. maar wanneer er wat veranderd moet er ook worden onthouden wat hij aan het doen was en daar mee verder gaan. aangezien een wasmachine een vast patroon afloopt.

binnen een fase (bv het spoelen) moet een bepaals patroon van oplichten van de leds geven. wanneer er op een knop word gedrukt moet hij zich aanpassen hieraan wanneer er geen knop word gedrukt moet gewoon verder worden gegaan met het normale proces.

ik hoop dat het nu iets duidelijker is.
je hoeft niet precies te vertellen wat het programma(mag wel haha) maar wil graag weten hoe ik zoiets moet opzetten.
Bijlagen
voorbeeld proces.JPG
voorbeeld proces.JPG (35.55 KiB) 11920 keer bekeken
Mat Janssen
Moderator
Moderator
Berichten: 11595
Lid geworden op: wo 10 dec 2003, 18:36
Locatie: nederweert. .. .. .. .. .. .. .. .. .

Bericht door Mat Janssen »

De beste aanpak is: maak een flowchart (grafische voorstelling) van je probleem. Voor elke toestand heb je voorwaardes nodig en daarna doet het iets.
Wanneer dat dan gebeurd is dan krijg je weer een andere toestand, en dan gebeurd er weer iets.
Los eerst op die manier je probleem op zodat je zelf precies begrijpt wat er gebeurt en moer gebeuren.
Dan pas ga je over tot het koderen van je probleem met die processor.
Ik gebruik die processor zelf niet maar ik ken die familie wel.
Alles wat je getekend hebt moet dat ook nog gebouwd worden of is dat er allemaal al?
signature ruimte te huur ;-)
Verhuurd :!:
pirate
Berichten: 30
Lid geworden op: ma 14 nov 2005, 9:44

Bericht door pirate »

Mat Janssen schreef:De beste aanpak is: maak een flowchart (grafische voorstelling) van je probleem. Voor elke toestand heb je voorwaardes nodig en daarna doet het iets.
Wanneer dat dan gebeurd is dan krijg je weer een andere toestand, en dan gebeurd er weer iets.
Los eerst op die manier je probleem op zodat je zelf precies begrijpt wat er gebeurt en moer gebeuren.
Dan pas ga je over tot het koderen van je probleem met die processor.
Ik gebruik die processor zelf niet maar ik ken die familie wel.
Alles wat je getekend hebt moet dat ook nog gebouwd worden of is dat er allemaal al?
alles is al gebouwd en hoeft alleen nog geprogrammeerd te worden. is er iets wat ik beter anders kan doen dan?
Mat Janssen
Moderator
Moderator
Berichten: 11595
Lid geworden op: wo 10 dec 2003, 18:36
Locatie: nederweert. .. .. .. .. .. .. .. .. .

Bericht door Mat Janssen »

Je hebt ook al een flowchart van de programma afloop?
Zo ja, ga dan aan het coderen van elke functie.
signature ruimte te huur ;-)
Verhuurd :!:
pirate
Berichten: 30
Lid geworden op: ma 14 nov 2005, 9:44

Bericht door pirate »

Mat Janssen schreef:Je hebt ook al een flowchart van de programma afloop?
Zo ja, ga dan aan het coderen van elke functie.
die heb ik nog niet helemaal. ik ga even aan de slag en als ik vast loop dan laat ik je het weten..
pirate
Berichten: 30
Lid geworden op: ma 14 nov 2005, 9:44

Bericht door pirate »

even vraagje tussen door. kan je met assemble taal ook een soort van if state funktie doen. zodat je als je twee opties hebt wat het volgende zal worden. bv je kan kiezen 60 minuten wassen of 90 minuten. en aan de hand van de keuzen gaat hij dat programma aflopen.
hoe heet zon funktie of zijn daar meerdere funkties voor nodig.

en is er ook een funktie dat hij kan wachten bij een bepaald gedeelte todat je een waarde invoerd. bv ik wil dat hij net zolang in de eerste fase blijt todat je invoed of je 60 of 90 graden wilt wassen..
pirate
Berichten: 30
Lid geworden op: ma 14 nov 2005, 9:44

Bericht door pirate »

oke ik ben inmiddels al wat verder met het programmeren. ik heb al wat functies die ik kan gebruiken voor de schakelaar situaties. echter dit kan ik niet bij alle gebruiken. en ik kan verder in de instructie set die ik heb niet wijs uit worden.

het volgende heb ik wel:

situatie1 voor het starten van het proces. heb ik 1 schakelaar. dat programma gedeelte moet steeds door loopen todat er op de schakelaar wordt gerdukt.
dit heb ik als volgt op gelost

MOV A,R9 ; waarde start schakelaar in accu plaatsen
JNZ TEMPERATUUR ; als accu hoog is dan sprong naar temperatuur
JMP START ; als accu laag is dan springen naar start

wat er gebeurt is dat wanneer de schakelaar hoog is dan word er verder gegaan naar een label binnen het programma(temperatuur, start). als de schakelaar laag is gaat hij voorbij de JNZ functie en maakt ie een spring naar het begin en begint weer opnieuw totdat er op se schakelaar word gedrukt

dit zelfde principe heb ik gedaan bij een ander schakel moment waar moet worden gekozen tussen warm of koud.

maar het probleem nu
de bovenste voorbeelden zijn op vaste momenten binnen het programma, zodat ik gewoon kan laten loopen.
maar ik heb ook schakelaar die op elk moment binnen het proces moet in kunnen drukken en dan moet er ook naar een bepaald LABEL toe worden gegaan. en dan kan ik dus geen loop gebruiken.

hoe kan ik dit oplossen. hoe moet je zoiets doen.

hoop dat het een beetje duidelijk is
Sram
Berichten: 92
Lid geworden op: zo 15 feb 2004, 14:22
Locatie: . .. .. .

Bericht door Sram »

Wat jij wilt kan eigenlijk alleen via een interrupt. Lees op www.8052.com de tutorials door en leer over deze interrupts. Er is bijna geen programma te schrijven dat zonder een interrupt probleemloos werkt. Ook kun je de "wachtlussen" dan gelijk via een mooie timer interrupt laten lopen ipv van al die NOP jes.

Als je veel toetsen hebt kijk dan eens naar een 74C923 keyboard ic. Dit IC geeft een puls aan je interrupt wanneer er een toets word ingedrukt. Je uC hoeft dus alleen iets te doen als er ook daadwerkelijk iets aan de hand is.
pirate
Berichten: 30
Lid geworden op: ma 14 nov 2005, 9:44

Bericht door pirate »

bedankt hier heb ik wel wat aan ja.. al moet het project al bijna af zijn.
Plaats reactie