Trích:
Nguyên văn bởi phamminh05
Em muốn viết 1 đoạn code phát âm thanh đơn giản thôi,giống như cái Casio vậy vô hàm void play_sound(void) ở trên,nhưng em không biết cấu hình PMW như thế nào và xuất ra như thế nào(cần 1 chân hay cả nguyên 1 port) để xuất ra âm thanh?
Mong anh namqn và các bạn giúp giùm mình với,hơi chi tiết 1 chút,mình mới chỉ tìm hiểu PIC và VDK chưa lâu nên chưa biết rõ lắm.
|
Bạn chỉ cần 1 ngõ ra của PIC (cùng với chân VSS) để xuất âm thanh ra loa (thông qua một mạch khuếch đại, nếu cần thiết).
Một ví dụ về cách tôi thiết lập module CCP2 của PIC18F2320 trong C18 như sau:
Code:
PR2 = 200; //PR2 = (PWM period)*Fosc/(4*TMR2 prescale), 10 kHz
CCP2CON = 0x0C; //PWM mode, 2 LSBs of duty cycle are '0'
CCPR2L = 100; //50% duty initially
PIR1bits.TMR2IF = 0;
T2CON = 0x04; //Timer 2 is on (prescale = 1:1, postscale = 1:1)
TRISCbits.TRISC1 = 0; //RC1 is an output (PWM output)
Khi cần thay đổi duty cycle thì bạn thay đổi giá trị CCPR2L (8 bit cao nhất của duty cycle), và các bit <5:4> của thanh ghi CCP2CON (2 bit thấp nhất của duty cycle).
Tự đào sâu tìm hiểu sẽ giúp bạn hiểu rõ hơn.
Thân,