Mis on ''tõusuäär'' (ingl. Rising Edge)?

Mikrokontrolleril on sisendid diskreetse digitaalsignaali puhul väärtusega 0 või 1. Sisend võib igas tsüklis muutuda ja tõusuäär on täpselt see tsükkel, milllest eelnevalt oli väärtus 0 ja selles tsüklis on 1, ehk täpne hetk kui null on läinud üle üheks.

Mis on ''tõusuäär'' (ingl. Rising Edge)?

Selleks, et võrrelda nüüdset väärtust eelmise tsükliga peab olema eelmise tsükli väärtus muutujana salvestatud ja säilima võrreldavuse jaoks tsüklite üleselt, globaalse muutujana. 

Globaalne muutuja peab olema defineeritud enne void loop() algust. 

Tüüpiliselt peaks olema numbrilise väärtuse salvestamiseks andmetüüp "int"

 

int eelmiseTsukliOlek;

void loop(){

  // siin loeme pordi uue oleku i1 muutjasse

  if (i1 ==1 && eelmiseTsukliOlek == 0){

    print("Tuvastasime tõusuääre");

 }

  // salvestame mälumuutujasse

  eelmiseTsukliOlek = i1; 

}// loop tsükli lõpp

 

teegi kasutamisel saad kasutada lihtsalt, teegi tasandil juba võrdluse tulemust

if (r1 == 1){
  print("Tuvastasime tõusuääre");
}

 

Miks on portide käsitsemine ja tõusuäärte võrdlus teegi tasandil oluliselt lihtsam

TegevusGeneeriline (käsititsi) koodnanoTronic070.h teegiga
Mälu haldusPead iga nupu jaoks looma oma eelmiseOlek_1, eelmiseOlek_2 jne.Teek haldab massiive i[10] ja r[10] automaatselt taustal.
Koodi pikkusif-lause peab sisaldama kahte kontrolli ja oleku käsitsi salvestamist tsükli lõpus.Kirjutad lihtsalt if (r1). Teek teeb võrdluse ja salvestamise inRe() funktsioonis.
PõrkekaitsePead lisama delay(), mis "uimastab" kogu programmi, või looma keerulise taimeri.Teek kasutab fHistorySave ja fHistCheck funktsioone, mis teevad targa, mitte-blokeeriva põrkekaitse.
KäivitusPead meeles pidama, et eelmiseTsukliOlek = praeguneOlek oleks tsükli kõige viimane rida.Piisab, kui kutsuda tsükli alguses inRe() ja lõpus doOut().

 

 

Pinge (V)
      ^
      |                           i1 == 1
  5V  |                       ------------------------->
      |                       |
      |                       |
      |                       | <-- TÕSUÄÄR (Rising Edge)
      |                       |     Siin hetkel r1 = 1
      |                       |
      |   i1 == 0             |
  0V  +-----------------------'                     ---> Aeg
      0                   Aeg/tsüklid    

Monteeri lihtsalt ja kiiresti

Riistvara montaa¾ on jaotatud etappideks ja toetatud õppevideodega. Vaata lähemalt.

 

Tarkvaratugi

Loe riistvaralist portide lugemist ja muutujate defineerimist toetava tarkvarateegi kohta