Operácie

Programovanie AVR v jazyku C: Rozdiel medzi revíziami

Z SensorWiki

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 zo dňa a času 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.