LaunchPad Texas Instruments

Projekt 2 - Reakce na tlačítko

28.02.2011 00:08

Program přepíná blikání diod na desce LaunchPadu v závislosti na stisku tlačítka S2. Pokud je stisknuté, tak bliká dioda LED2, pokud není stisknuté, tak bliká dioda LED1. Pokud myste toto využívali i mimo desku, tak nezapomeňte mít vždy vstupní pin přes rezistor připojen na pól baterie a na druhý pól pin připojovat bez rezistoru. Na nepřipojeném vstupu totiž může vznikat nahodilá hodnota.

Zde je odkaz na soubor se zdrojovým kódem

#include "msp430g2231.h"

#define LED1 BIT0
#define LED2 BIT6
#define S2 BIT3    // Definuje pro S2 hodnotu BIT3 (pro použití P1.3 )
#define DEL1 5000

void delaytime(unsigned int timex)
{
  while (timex != 0)
  {
    timex--;
  }
}

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;
  P1DIR |= (LED1 + LED2);
  P1OUT &= ~(LED1 + LED2);

  for (;;)
  {
    while ((P1IN & S2) == S2)
/*
Tato podmínka cyklu WHILE zjišťuje, zda není zmáčknutý spínač S2, a pokud ne, tak se provádí tento cyklus.
Podmínka tedy udává: pokud je na 'Portu 1 vstup bit3 roven log.1' tak proveď
*/


    {
      P1OUT ˆ= LED1;
      delaytime(DEL1);
    }
/*
Po konci cyklu diodu vypneme, aby nám náhodou stále nesvítila, což jsme si řekli v projektu 1.
*/

    P1OUT &= ~(LED1);

    while ((P1IN & S2) != S2)
    {
/*
Tato podmínka cyklu WHILE zjišťuje, zda je zmáčknutý spínač S2, a pokud ano, tak se provádí tento cyklus.
Podmínka tedy udává: pokud není na 'Portu 1 vstup bit3 roven log.1' tak proveď
*/

      P1OUT ˆ= LED2;
      delaytime(DEL1);
    }
// Po konci cyklu opět diodu vypneme
    P1OUT &= ~(LED2);

  }
}

 

Zpět

Vyhledávání

© 2011 Všechna práva vyhrazena.