Reseta loop till en 16F628 krets ?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Nollställd
Inlägg: 2
Blev medlem: 3 april 2007, 18:06:43
Ort: Stockholm

Reseta loop till en 16F628 krets ?

Inlägg av Nollställd »

Hej!

Just nu kör vi tex en switch case sats som gör att en diod blinkar på olika sätt beroende på vilket läge en switch har.
Men när man switchar fram och tillbaka så är den någonstans i loopen istället för att börja från början varje gång.

Frågan är hur man kan få den att börja från början efter varje switch man gör, finns det något kommando eller kan man styra på något annat sätt ?

//Två stycken Nollställda noviser
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Inlägg av v-g »

Gör loopen mindre eller kör med interupt.
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Man kan göra programmet så att det gör rätt.

Att den väljer och sedan påbörjar en programsnudd som består av "lång tid" med en massa blinkningar betyder att ni har vald fel programmeringsteknik!

Ska den reagerar "omedelbart" få ni se till att antingen lägga in en kodsnudd som kollar brytaren ofta ELLER göra om hela sekvensen.

Jag brukar göra liknande med att ha en sekvensräknare som jag stegar upp och sedan kan man ha en rutin som känner av att brytaren bytar läge, om den gör det är det extremt enkelt att nolla sekvensräknaren och välja den ANDRA sekvensen.

Om sekvenserna består av olika data (lys x ms, släck y ms osv) kan man göra det vid att läsa en av 2 tabeller och utföra de instruktioner som finns där, alltså ett par tabeller som innehåller data som tolkas: lys i x ms/släck i y ms och när detta är utfört är det bara att stega till nästa steg och innan denna stegning kollar man brytaren, jämför med förra position och nollar sekvensräknaren vid behov.
Nollställd
Inlägg: 2
Blev medlem: 3 april 2007, 18:06:43
Ort: Stockholm

Inlägg av Nollställd »

ok, tack för svar. Men tyvärr är vi väldigt nybörjare på detta... så att hänga med på det där när det gäller att skriva koden är ju inte så lätt.

vi håller på och försöker göra ett litet trafikljus med 3 dioder och en switch.

tanken är att den ena dioden skall lysa helt i ena läget på switchen för att sedan switcha över och då skall diod 2 börja lysa någon sekund och sedan skall första och andra dioden slockna och 3 skall börja lysa.

Mvh Johan
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Men är det inte så att ett trafikljus faktisk SKA fullföra sin sekvens när den väl är startat?

Och sedan när den är i det läge kan den avkänna brytaren och återgå i en given sekvens, också den fast och tydlig.

Så när den väl har påbörjat en bytesekvens ska den sekvens utföras helt oberoende av brytarens ställning under tiden.
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg av Micke_s »

Nja, trafikljus går direkt till gult blinkande vid fel.
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Jag ser ingenstans att brytaren betyder "Fel".....

Kanske något som Nollställd har glömt att skriva något om?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

VAR ÄR *KODEN* ???
Skriv svar