Flera saker samtidigt
This presentation is the property of its rightful owner.
Sponsored Links
1 / 10

Flera saker samtidigt? PowerPoint PPT Presentation


  • 65 Views
  • Uploaded on
  • Presentation posted in: General

Flera saker samtidigt?. /* Blink1: 1s ON - 1s OFF */ /* Blink2: 0,2s ON - 0,2s OFF - 1s ON - 1s OFF */. Först en lysdiod ….

Download Presentation

Flera saker samtidigt?

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Flera saker samtidigt

Flera saker samtidigt?

/* Blink1: 1s ON - 1s OFF */

/* Blink2: 0,2s ON - 0,2s OFF - 1s ON - 1s OFF */

William Sandqvist [email protected]


F rst en lysdiod

Först en lysdiod …

while(1) { /* Blink1: 1s ON - 1s OFF */switch(State1) {case 0: Blink1 = ON; Time1++;if( Time1 == 10 ) { State1 = 1; Time1 = 0; }break;case 1: Blink1 = OFF; Time1++;if( Time1 == 10 ) { State1 = 0; Time1 = 0; } } delay10(10); /* 0,1 sek delay */ }

William Sandqvist [email protected]


Sedan en annan lysdiod

Sedan en annan lysdiod …

while(1) { /* Blink2: 0,2s ON - 0,2s OFF - 1s ON - 1s OFF */switch(State2) {case 0: Blink2 = ON; Time2++;if( Time2 == 2 ) { State2 = 1; Time2 = 0; }break;case 1: Blink2 = OFF; Time2++;if( Time2 == 2 ) { State2 = 2; Time2 = 0; }break;case 2: Blink2 = ON; Time2++;if( Time2 == 10 ) { State2 = 3; Time2 = 0; }break;case 3: Blink2 = OFF; Time2++;if( Time2 == 10 ) { State2 = 0; Time2 = 0; } } delay10(10); /* 0,1 sek delay */ }

William Sandqvist [email protected]


Varf r inte b da

Varför inte båda?

while(1) {/* Blink1: 1s ON - 1s OFF */switch(State1) {case 0: ... ; break;case 1: ... ; } /* Blink2: 0,2s ON - 0,2s OFF - 1s ON - 1s OFF */switch(State2) {case 0: ... ; break;case 1: ... ; break; case 2: ... ; break; case 3: ... ; } delay10(10); /* 0,1 sek delay */ }

William Sandqvist [email protected]


En makal s manick

En makalös manick?

Lysdiod1, Lysdiod2, Kaffeautomat, Motor …Alla kursens Moore-automater på en och samma gång!

manick.c

Programmet är bara på 300 kodrader.( Frågan är vad man ska ha det till ? )

Årets Julklapp?

William Sandqvist [email protected]


State machines

State machines

State machines/Tillståndsmaskiner/Moore-automater är således mycket användbara hjälpmedel för att programmera ”parallella” processer för små microcontrollers.

Tips! Observera att B Knudsen lägger ut effektivare kod för switch() – caseän förif() – else if() – elseså använd alltid switch-satsen!

Många komersiella programvaror bygger på State machines …

William Sandqvist [email protected]


Grafiska programspr k labview

Grafiska programspråk, LabView

do { Blink != Blink; delay10(100); /* 1 sek delay */ } while(!Stop );

William Sandqvist [email protected]


Realiser

Realiser

Realizer, ett grafiskt programmeringsverktyg för små processorer, tex. PIC.

En state machine ritad med Realizer. PIC-kod genereras sedan direkt.

William Sandqvist [email protected]


B knudsen

B. Knudsen

Kan man verkligen skriva ”multitask program” för en 8 bitars processor som bara har en ynkligt liten hårdvarustack?

B Knudsen har ett ”udda” verktyg, Leanslice – som ger multitasking med hjälp av anrop till en ”dold statemachine”.

Den som är intresserad läser:

Leanslice manual

William Sandqvist [email protected]


Flera saker samtidigt

William Sandqvist [email protected]


  • Login