Operácie

Programovanie AVR v jazyku C: Rozdiel medzi revíziami

Zo stránky SensorWiki

Balogh (diskusia | príspevky)
Bez shrnutí editace
Balogh (diskusia | príspevky)
Bez shrnutí editace
Riadok 12: Riadok 12:
/* Pripojenie periferii k vyvojovej doske Arduino:
/* Pripojenie periferii k vyvojovej doske Arduino:
  *  LED Diody  LED1 - D13 - PB5 (zabudovana)
  *  LED Diody  LED1 - D13 - PB5 (zabudovana)
*            LED2 - D7  - PD7
*            LED3 - A3/D17  - PC3
  *  Tlacitka  TLAC1 - D12 - PB4
  *  Tlacitka  TLAC1 - D12 - PB4
*            TLAC2 - D6  - PD6
*            TLAC3 - A2/D16  - PC2
  */
  */


#define LED1  13   
#define LED1  13   
#define LED2  7
#define LED3  17
#define TLAC1  12
#define TLAC1  12
#define TLAC2  6
#define TLAC3  16
int State;
void setup() {


  State = 1;
void setup()
 
{
   pinMode(LED1, OUTPUT);
   pinMode(LED1, OUTPUT);
   pinMode(TLAC1, INPUT_PULLUP);
   pinMode(TLAC1, INPUT_PULLUP);
  pinMode(LED2, OUTPUT);
  pinMode(TLAC2, INPUT_PULLUP);
  pinMode(LED3, OUTPUT);
  pinMode(TLAC3, INPUT_PULLUP);
    
    
}
}


void loop() {
void loop()  
 
{
   if (digitalRead(TLAC1))
   if (digitalRead(TLAC1))
     digitalWrite(LED1, LOW);
     digitalWrite(LED1, LOW);
Riadok 52: Riadok 32:
     digitalWrite(LED1,HIGH);
     digitalWrite(LED1,HIGH);
    
    
/* potialto je to pre studentov, ako ukazka, pripadne to iste s TLAC2 a TLAC 3 ako demo, ze im to dobre funguje. To
}
*  co nasleduje dalej, je uz riesenie R-S klopneho obvodu. S jednym tlacitkom az ked budeme vediet osetrit zakmity
</source></tab>
*/
<tab><source lang="cpp">
  if ( (State==1) && !digitalRead(TLAC3))
 
    {
#define nieco
      digitalWrite(LED2, LOW);
      digitalWrite(LED3, HIGH);
      State=2;
      delay(1);
    }
  else if ( (State==2) && !digitalRead(TLAC3) )  // na dve tlacitka, teda ak je tu TLAC3 to funguje dobre, na jedno (zmena na TLAC2) nahodne, pretoze nemame osetrene zakmity
    {
      digitalWrite(LED2,HIGH);
      digitalWrite(LED3,LOW);
      State=1;
      delay(1);
    }


  /*
main()
  if (digitalRead(TLAC3))
{
    digitalWrite(LED3, LOW);
  while(1)
   else
  {
    digitalWrite(LED3,HIGH);
   /* main program here */
  }


    */
return(0); /* never happen */
}
}
</source>
</source></tab>
</tab></tabs>
</tabs>
== Literatúra ==
== Literatúra ==



Verzia z 15:07, 21. január 2021

Zatial aspon referencia[REF 1]


Úloha:

Na cvičení predvedieme pripojenie tlačítka, ktoré bude ovládať jednu LED diódu. Vašou úlohou bude pripojiť dve externé diódy a dve tlačítka a spraviť z nich preklápací R-S obvod.


Jedno tlačítko a jedna LED

/* Pripojenie periferii k vyvojovej doske Arduino:
 *  LED Diody  LED1 - D13 - PB5 (zabudovana)
 *  Tlacitka  TLAC1 - D12 - PB4
 */

#define LED1  13   
#define TLAC1  12

void setup()
{
   pinMode(LED1, OUTPUT);
   pinMode(TLAC1, INPUT_PULLUP);
   
}

void loop() 
{
   if (digitalRead(TLAC1))
     digitalWrite(LED1, LOW);
   else
     digitalWrite(LED1,HIGH);
  
}
#define nieco

main()
{
  while(1)
  {
   /* main program here */
  }

 return(0); /* never happen */
}

Literatúra

  1. AVR035: Efficient C Coding for AVR. Application note.