Advertisement
Guest User

Untitled

a guest
Nov 17th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.30 KB | None | 0 0
  1. #define v_kood1 0b10101010
  2. #define v_kood2 0b01010101
  3.  
  4. // Taimeri väljundsignaal on katkestusregistris INTCON
  5. #define Q_taimer 0b00000100
  6. #define Q_buzz 0b00000100
  7.  
  8. void piiks_peale(void){
  9.     TRISC &= ~Q_buzz;
  10. }
  11.  
  12. void piiks_maha(void){
  13.     TRISC |= Q_buzz;
  14. }
  15.  
  16. void main(int argc, char** argv) {
  17.     unsigned int aeg=153;
  18.     char korda=0;
  19.     char loe=0;
  20.     TRISD = 0; // väljundport on D tervikuna
  21.     ADCON1 = 6;
  22.     OPTION_REG |= 0b00000111; // jagur 1:128, 5Mhz/128 = 39062 Hz
  23.     PSA=0; T0CS=0;  // OPTION_REG &= 0b11010111;
  24.    
  25.     // PWM seadistus
  26.     TMR2=0;
  27.     T2CON = 0b00000110; // TMR2ON=1, Sagedusjagur (1x) = 16x
  28.     PR2= 123;
  29.     CCP1CON = 0b00001100; // 11xx = PWM mode
  30.     CCPR1L = PR2/2;
  31.     CCP1X = 0;
  32.     CCP1Y = 0;
  33.     while (1){
  34.          if (INTCON & Q_taimer){
  35.              if (aeg < 0xFFFF) aeg++;
  36.              INTCON &= ~Q_taimer; // Nullitakse ületäitumise tunnus
  37.         }    
  38.         if (!RA3){loe=10; piiks_maha(); }
  39.          
  40.         if (aeg > 15){
  41.             if (korda != 0) korda=0; else korda=1;    
  42.             if (loe>0){
  43.                 loe--;
  44.                 if (korda) PORTD = v_kood1; else PORTD = v_kood2;
  45.             }else{
  46.                 PORTD = 0;
  47.                 piiks_peale();
  48.             }
  49.             aeg=0;
  50.         }
  51.      }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement