lauantai 9. huhtikuuta 2016

Ohjelmapohja

Tässä vaiheessa on varmaankin tarkoituksenmukaista tehdä ohjelmapohja, mikä sisältää tärkeimpiä toimintoja valmiiksi. Lataamalla sen ohjelmointityökaluun ja ensimmäiseksi antamalla sille uuden nimen, on siitä helppo jatkaa varsinaiseen ohjelmaan. Pohjassa voi olla ”kommentteina” valmiina esimerkkejä, joita kopioimalla ja editoimalla saadaan haluttu lopputulos. Kun ohjelmointi edistyy, on tarkoituksenmukaista kasvattaa pohjan tarjontaa. Ohjelmaa tehdessä voi tarpeettoman deletoida pois.

Pohja versio 1
/***************************************
 *  Ohjelman nimi
 *  pp.kk.vvvv
 *  Lyhyt toimintaselostus
 **************************************/

// MÄÄRITTELYT:
// Kellon määrittely
unsigned long Ulo_MilliSek = 0;
unsigned long Ulo_UusiMilliSek = 0;
const long CoL_EroSekunti = 999;
int Int_Sekunti = 0;
boolean Bol_Tulosta = false; // Tulostusta ohjataan kellolla

// Muutamia perusmäärityksiä
//const int Con_Pinni = No;
//boolean Bol_Nimi = false;
//const int Con_Nimi = arvo;
//int Int_Nimi = arvo;

// ASETUKSET:
void setup(){                 
 Serial.begin(9600);         
 //while (!Serial) { ; } // Odottaa sarjaportin kytkeytymistä
//pinMode(Con_Pinni, INPUT);
//pinMode(Con_Pinni, OUTPUT);

}// Asetuksen loppu

// PÄÄLOOPPI                   Varsinainen suoritusosa. Jatkuva suoritus
void loop(){
// Sisäisen kellon käyttö
Ulo_MilliSek = millis();
  if(Ulo_MilliSek - Ulo_UusiMilliSek > CoL_EroSekunti){
    Ulo_UusiMilliSek = Ulo_MilliSek;
    Int_Sekunti++;
    if (Bol_Tulosta == true){Fun_Tulostus();}
  }

// Tehdään jotain muutakin

delay(1);
} // Pääohjelma LOPPU

// FUNKTIOT
void Fun_Tulostus(){
//Serial.print("Teksti :");  Serial.println(Muuttuja);

}
/*
MALLiRAKENTEITA:

Serial.print("Selitysteksti :");  Serial.println(Muuttuja);
analogWrite(pin, value)
val = analogRead(analogPin);
digitalWrite(ledPin, HIGH);
val = digitalRead(inPin);

if (someVariable > 50) {   // do something here }
      if (Var_Viive_K == 0 && LED_Kel_Tila == false){
          Var_Viive_K = Con_Viive_K;
          LED_Kel_Tila = true;
      }

if (pinFiveInput < 500)
{
  // action A
}
else
{
  // action B
}

sensVal = constrain(sensVal, 10, 150);
y = map(x, 1arvo1, 1arvo2, 2arvo1, 2arvo2);

switch (var) {
  case label: // tämä on vakio
    // statements
    break;
  case label:
    // statements
    break;
  default:
    // statements
}

 for (int i=0; i <= 255; i++){
      analogWrite(PWMpin, i);
      delay(10);
   }

do
{
    // statement block
} while (test condition);

unsigned long time;
  time = millis(); // Imoittaa käyntiajan (ms) startista

*/

Muutama selityksen sana. Asetuksissa  while (!Serial) { ; } estää ohjelman käynnistymise siihen asti, kunnes tietokoneelta on lähetetty sarjaliikenne avaus klikkaamalla oikealla ylhäällä olevaa Serial Monitor – painiketta. Ohjelmapohjan mallirakenteet on kopioitu ohjelmatyökalun ohjeista: Help -> Reference. Tämä ohjelmapohjani on luonnollisesti vapaati käytettävissä ja tietysti muokattavissa myös kunkin tarpeen mukaan.

Ei kommentteja:

Lähetä kommentti