Page 41 - levitation project utech
P. 41

Λογισμικό




 Ο κώδικας που ακολουθεί διαμορφώνει τη λειτουργία των
 ηχείων έτσι ώστε να παράγουν αντίθετα κύματα ίδιας     // turn off everything we can
 συχνότητας, προκειμένου να δημιουργηθεί το στάσιμο κύμα.     power_adc_disable ();
          power_spi_disable();
          power_twi_disable();
          power_timer0_disable();
          power_usart0_disable();

 #include <avr/sleep.h>    while(true); //ο κώδικας δεν μπαίνει σε loop
 #include <avr/power.h>
        ISR(TIMER1_COMPA_vect)   // timer compare interrupt service routine
 byte pattern = 0b10101010;   {
 void setup()    PORTC = pattern; //output portDV στις θύρες 0 to 7
 {        pattern = ~pattern; //αντιστροφή των bits
        }
  DDRC = 0b00011111; //τα pin A0 εως Α4 ορίζονται ως output
  PORTC = 0b00000000; //χαμηλό σήμα σε όλες τις εξόδους  void loop(){

   // initialize timer1   }
   noInterrupts();           // απενεργοποίηση διακοπών
   TCCR1A = 0;
   TCCR1B = 0;
   TCNT1  = 0;


   OCR1A = 199; // 16MHz / 200 = 80kHz -> 40kHz
   TCCR1B |= (1 << WGM12);   // CTC mode
   TCCR1B |= (1 << CS10);
   TIMSK1 |= (1 << OCIE1A);  // ενεργοποίηση timer compare interrupt
   interrupts();             // ενεργοποίηση διακοπών


   // disable ADC
   ADCSRA = 0;
   36   37   38   39   40   41   42   43   44   45   46