buzzer.c

Go to the documentation of this file.
00001 
00026 #include <includes.h>
00027 #include <math.h>
00028 
00029 #define PI 3.14159265
00030 
00031 int buzzer_hz = 4000; 
00032 int buzzer_is_on = 0;
00033 int buzzer_hz_init = 600;
00034 int buzzer_hz_range = 300;
00035 int buzzer_period = 3000;
00036 
00040 void buzzer_on(void){
00041   PWMMR0 = 60000000/buzzer_hz;
00042   PWMMR5 = PWMMR0/2;
00043   PWMLER = (1<<0)|(1<<5);
00044 }
00045 
00049 void buzzer_off(void){
00050   PWMMR5 = 0;
00051   PWMLER = (1<<5);
00052 }
00053 
00058 void buzzer_set_frequency(int hz){
00059   buzzer_hz = hz;
00060   if (buzzer_is_on){
00061     buzzer_on();
00062   }
00063 }
00064 
00065 void buzzer_sine(int period){
00066   int i;
00067   buzzer_period = period;
00068   for(i = 0; i < buzzer_period; i++){
00069     buzzer_hz = buzzer_hz_init + buzzer_hz_range * sin(buzzer_period * PI/180);
00070   }
00071   if (buzzer_is_on){
00072       buzzer_on();
00073     }
00074 }
Generated on Tue Jun 29 16:36:14 2010 by  doxygen 1.6.3