سلام بچه ها
یه کد داشتم که می خواستم یکی برام تحلیلش کنه که بدونم این چطوریه. این کد:
اینم فایل sin.h :
یه درخواست هم دارم. این کد واسه کامپایلر کدویژن نوشته نشده. همین کد توی کد ویژن چطوری میشه؟
یه کد داشتم که می خواستم یکی برام تحلیلش کنه که بدونم این چطوریه. این کد:
کد:
/******************************************************************** DESCRIPTION: A Simple program to genarate some random musical tone. MCU: Atmel AVR ATmega32 CPU SPEED: 16Mhz LOW FUSE: 0XFF HIGH FUSE: 0XC9 NOTE: Connect a 8ohm speaker between GND and PB3. AUTHOR: Avinash Gupta DATE: Mar 18, 2010 WEB: www.eXtremeElectronics.co.in *** THIS PROJECT IS PROVIDED FOR EDUCATION/HOBBY USE ONLY *** *** NO PROTION OF THIS WORK CAN BE USED IN COMMERIAL *** *** APPLICATION WITHOUT WRITTEN PERMISSION FROM THE AUTHOR *** EVERYONE IS FREE TO POST/PUBLISH THIS ARTICLE IN PRINTED OR ELECTRONIC FORM IN FREE/PAID WEBSITES/MAGAZINES/BOOKS IF PROPER CREDIT TO ORIGINAL AUTHOR IS MENTIONED WITH LINKS TO ORIGINAL ARTICLE COPYRIGHT (C) 2008-2010 EXTREME ELECTRONICS INDIA. *********************************************************************/ #include <avr/io.h> #include <util/delay.h> #include <avr/pgmspace.h> #include "sin.h" /* Function To Initialize TIMER0 In Fast PWWM Mode. */ void InitPWM() { /* TCCR0 - Timer Counter Control Register (TIMER0) ----------------------------------------------- BITS DESCRIPTION NO: NAME DESCRIPTION -------------------------- BIT 7 : FOC0 Force Output Compare [Not used in this example] BIT 6 : WGM00 Wave form generartion mode [SET to 1] BIT 5 : COM01 Compare Output Mode [SET to 1] BIT 4 : COM00 Compare Output Mode [SET to 0] BIT 3 : WGM01 Wave form generartion mode [SET to 1] BIT 2 : CS02 Clock Select [SET to 0] BIT 1 : CS01 Clock Select [SET to 0] BIT 0 : CS00 Clock Select [SET to 1] The above settings are for -------------------------- Timer Clock = CPU Clock (No Prescalling) Mode = Fast PWM PWM Output = Non Inverted */ TCCR0|=(1<<WGM00)|(1<<WGM01)|(1<<COM01)|(1<<CS00); //Set OC0 PIN as output. It is PB3 on ATmega16 ATmega32 DDRB|=(1<<PB3); } void main() { uint8_t i; InitPWM(); while(1) { uint8_t delay,n; for(delay=1;delay<=50;delay++) { for(n=0;n<(51-delay);n++) { for(i=0;i<=254;i++) { OCR0=pgm_read_byte_near(sine+i); _delay_loop_2(delay); } } } for(delay=50;delay>=2;delay--) { for(n=0;n<(51-delay);n++) { for(i=0;i<=254;i++) { OCR0=pgm_read_byte_near(sine+i); _delay_loop_2(delay); } } } } }
اینم فایل sin.h :
کد:
#include <avr/pgmspace.h> prog_uint8_t sine[256]={ 127, 130, 133, 136, 139, 143, 146, 149, 152, 155, 158, 161, 164, 167, 170, 173, 176, 178, 181, 184, 187, 189, 192, 195, 197, 200, 203, 205, 207, 210, 212, 214, 217, 219, 221, 223, 225, 227, 229, 231, 232, 234, 236, 237, 239, 240, 242, 243, 244, 245, 246, 248, 248, 249, 250, 251, 251, 252, 253, 253, 253, 254, 254, 254, 254, 254, 254, 254, 253, 253, 253, 252, 252, 251, 250, 250, 249, 248, 247, 246, 245, 243, 242, 241, 239, 238, 236, 235, 233, 231, 229, 227, 225, 224, 221, 219, 217, 215, 213, 210, 208, 206, 203, 201, 198, 195, 193, 190, 187, 185, 182, 179, 176, 173, 170, 167, 164, 161, 158, 155, 152, 149, 146, 143, 140, 137, 134, 131, 128, 125, 121, 118, 115, 112, 109, 106, 103, 100, 97, 94, 91, 88, 85, 82, 79, 76, 73, 71, 68, 65, 62, 60, 57, 55, 52, 50, 47, 45, 42, 40, 38, 36, 34, 31, 29, 27, 26, 24, 22, 20, 19, 17, 15, 14, 13, 11, 10, 9, 8, 7, 6, 5, 4, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2, 2, 3, 4, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 16, 17, 19, 21, 22, 24, 26, 28, 30, 32, 34, 36, 39, 41, 43, 45, 48, 50, 53, 55, 58, 61, 63, 66, 69, 72, 74, 77, 80, 83, 86, 89, 92, 95, 98, 101, 104, 107, 110, 113, 116, 119, 122, };
دیدگاه