Fórum témák

» Több friss téma
Cikkek » Nulláról a robotokig - PIC Mikrovezérlők III rész
Nulláról a robotokig - PIC Mikrovezérlők III rész
Szerző: Topi, idő: Júl 13, 2007, Olvasva: 51472, Oldal olvasási idő: kb. 1 perc
Lapozás: OK   15 / 19

Itt is figyeljünk, hogy a #FUSES-nél vagyis a konfig biteknél kapcsoljuk be a WDT-t. 

  1. #include <16F877.h>
  2.  
  3.  
  4. #FUSES WDT, XT, NOPUT, NOPROTECT, BROWNOUT, NOLVP, NOCPD
  5. #use delay(clock=4000000)
  6.  
  7.  
  8. //================================================================
  9. void main(){
  10. //================================================================
  11.  set_tris_a(0b00011111); //PORTA bemenet
  12.  set_tris_d(0b00000000); //PORTD kimenet
  13.  output_d(0b01010101);  //LED bekapcs
  14.  
  15.  
  16.  setup_wdt(WDT_2304MS);
  17.  
  18.  
  19.  for(;;) {
  20.  //Semmit nem csinálunk
  21.  if(!input(PIN_A1)) {
  22.   output_d(0xFF);
  23.  }
  24.  
  25.  while(!input(PIN_A0)); //mivel ;-van a végén, addig fut önmagában, míg fel nem engedjük a gombot
  26.  
  27.  restart_wdt();
  28.  }//for
  29. }//main

Az egész program forráskód és lefordított hex: wdt_ccs.zip

A while(!input(PIN_A0)); sor teljesen egyenértékű a:

  1. while(!input(PIN_A0)) { }

kóddal. Csak ugye tudniillik a C programozók lusták...

Most viszont olyan rész jön, amihez feltétlen értened kell mindegyik előző megszakítás működését. Eddig egyszerre mindig csak egy megszakítást használtunk. Ám most egyszerre fogunk RB0/INT-en gombot kezelni, és Timer0-ával LED-et léptetni.


A cikk még nem ért véget, lapozz!
Következő: »»   15 / 19
Értékeléshez bejelentkezés szükséges!
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem