Vattna blommorna – Del 7

God morgon!

Tänkte jag kunde bidra med koden som jag skrev igår. Den är nog inte helt färdig vid närmaste eftertanke, men jag tror den fungera som den skall just nu. Det enda som inte är testat är RA2 och hur den fungerar. Men det hoppas jag den gör :-).

Blir det att köra till Kjell.com och köpa lödkort ikväll? 🙂

Koden jag skrev ser ut enligt följande:

#include <pic16f690.h>

typedef unsigned int word;

word at 0x2007 __CONFIG = (_INTRC_OSC_NOCLKOUT & _CP_OFF & _WDT_OFF & _BOR_OFF & _PWRTE_ON & _MCLRE_OFF & _IESO_OFF & _FCMEN_OFF);
void delay_ms(long ms)
{
    long i;

    while (ms--)
        for (i=0; i<=50; i++) //50 iterations is _basically_ 1 ms.
			;
}
unsigned int pumpint=0; //just an int for loops..
unsigned int totalpumps = 10; //Keeping total pumps for ten pumps before a reset is needed (until calculated how much 10 litres goes for)
void main () {
	TRISC = 0x00;	/* PORTC, All outputs */
  TRISA2 = 0x01; /* RA2 input */
  while(1)
  {
    //Start pumping water, if RA3 isn't activated.
    //Wait for the breaking SW1
    if(!RA3 && totalpumps < 10)
    {
      while(1)
      {
        if(RA3)
        {
          break;
        }
        PORTC=0x0f;
        //As an extra marker, never pump for more than 5 secs.
        delay_ms(1);
        if(pumpint >= 5000) //Loop until 5000ms == 5secs is reached.
        {
          PORTC=0x00;
          pumpint = 0;
          totalpump++;
          break;
        }
        pumpint++;
      }
    }
    //Pumping done. Wait 15 minutes
    PORTC=0x03;
    //Reset button must work within this time. Don't sleep for a whole 15 mins, but keep polling.
    while(pumpint <= 90000) //15 min == 900000ms. We're polling each 10ms.
    {
      if(RA2) //RA2 is the reset switch
      {
        totalpumps = 0;
        pumpint = 0;
      }
      pumpint++;
      delay_ms(10)
    }
  }
}

Som ni säkert ser så är det inget direkt avancerat för att skriva program till en PIC:-).
Ska ta och skapa mig en riktig projektsida här på bloggen om just detta. Så fort jag har lite mer fysiskt arbete klart!

Vi hörs
Marcus

Leave a Reply

Your email address will not be published. Required fields are marked *