اطلاعیه

Collapse
No announcement yet.

تبدیل کد یک برنامه به زبان C به بیسکام

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    تبدیل کد یک برنامه به زبان C به بیسکام

    سلام دوستان
    من یک برنامه به زبان C دارم
    مخوام ببینم کسی میتونه اونو به بسکام تبدیل کنه؟


    میکرو مگا 16 و فرکانس کاری 8 مگا هرتز

    برنامه تولید موج SPWM برای ساخت موج سینوسی ....



    #include <stdlib.h>

    #include <avr/io.h>

    #include <util/delay.h>

    #include <avr/interrupt.h>

    #include <avr/sleep.h>

    #include <math.h>

    #include <stdio.h>

    0x80, 0x83, 0x86, 0x89, 0x8C, 0x90, 0x93, 0x96,

    0x99, 0x9C, 0x9F, 0xA2, 0xA5, 0xA8, 0xAB, 0xAE,

    0xB1, 0xB3, 0xB6, 0xB9, 0xBC, 0xBF, 0xC1, 0xC4,

    0xC7, 0xC9, 0xCC, 0xCE, 0xD1, 0xD3, 0xD5, 0xD8,

    0xDA, 0xDC, 0xDE, 0xE0, 0xE2, 0xE4, 0xE6, 0xE8,

    0xEA, 0xEB, 0xED, 0xEF, 0xF0, 0xF1, 0xF3, 0xF4,

    0xF5, 0xF6, 0xF8, 0xF9, 0xFA, 0xFA, 0xFB, 0xFC,

    0xFD, 0xFD, 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF,

    0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFE, 0xFD,

    0xFD, 0xFC, 0xFB, 0xFA, 0xFA, 0xF9, 0xF8, 0xF6,

    Page | 41

    0xF5, 0xF4, 0xF3, 0xF1, 0xF0, 0xEF, 0xED, 0xEB,

    0xEA, 0xE8, 0xE6, 0xE4, 0xE2, 0xE0, 0xDE, 0xDC,

    0xDA, 0xD8, 0xD5, 0xD3, 0xD1, 0xCE, 0xCC, 0xC9,

    0xC7, 0xC4, 0xC1, 0xBF, 0xBC, 0xB9, 0xB6, 0xB3,

    0xB1, 0xAE, 0xAB, 0xA8, 0xA5, 0xA2, 0x9F, 0x9C,

    0x99, 0x96, 0x93, 0x90, 0x8C, 0x89, 0x86, 0x83,

    0x80, 0x7D, 0x7A, 0x77, 0x74, 0x70, 0x6D, 0x6A,

    0x67, 0x64, 0x61, 0x5E, 0x5B, 0x58, 0x55, 0x52,

    0x4F, 0x4D, 0x4A, 0x47, 0x44, 0x41, 0x3F, 0x3C,

    0x39, 0x37, 0x34, 0x32, 0x2F, 0x2D, 0x2B, 0x28,

    0x26, 0x24, 0x22, 0x20, 0x1E, 0x1C, 0x1A, 0x18,

    0x16, 0x15, 0x13, 0x11, 0x10, 0x0F, 0x0D, 0x0C,

    0x0B, 0x0A, 0x08, 0x07, 0x06, 0x06, 0x05, 0x04,

    0x03, 0x03, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01,

    0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x03,

    0x03, 0x04, 0x05, 0x06, 0x06, 0x07, 0x08, 0x0A,

    0x0B, 0x0C, 0x0D, 0x0F, 0x10, 0x11, 0x13, 0x15,

    0x16, 0x18, 0x1A, 0x1C, 0x1E, 0x20, 0x22, 0x24,

    0x26, 0x28, 0x2B, 0x2D, 0x2F, 0x32, 0x34, 0x37,

    0x39, 0x3C, 0x3F, 0x41, 0x44, 0x47, 0x4A, 0x4D,

    0x4F, 0x52, 0x55, 0x58, 0x5B, 0x5E, 0x61, 0x64,

    0x67, 0x6A, 0x6D, 0x70, 0x74, 0x77, 0x7A, 0x7D

    void InitSinTable()

    {

    Page | 42

    //sin period is 2*Pi

    const float step = (2*M_PI)/(float)256;

    float s;

    float zero = 128.0;

    //in radians

    for(int i=0;i<256;i++)

    {

    s = sin( i * step );

    //calculate OCR value (in range 0-255, timer0 is 8 bit)

    wave[i] = (uint8_t) round(zero + (s*127.0));

    }

    }

    void InitPWM()

    {

    /*

    TCCR0 - Timer Counter Control Register (TIMER0)

    -----------------------------------------------

    BITS DESCRIPTION

    NO: NAME DESCRIPTION

    --------------------------

    BIT 7 : FOC0 Force Output Compare

    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 generation mode [SET to 1]

    Page | 43

    BIT 2: CS02 Clock Select [SET to 0]

    BIT 1: CS01 Clock Select [SET to 0]

    BIT 0: CS00 Clock Select [SET to 1]

    Timer Clock = CPU Clock (No Pre-scaling)

    Mode = Fast PWM

    PWM Output = Non Inverted

    */

    TCCR0|=(1<<WGM00)|(1<<WGM01)|(1<&lt ;COM01)|(1<<CS00);

    TIMSK|=(1<<TOIE0);

    //Set OC0 PIN as output. It is PB3 on ATmega16 ATmega32

    DDRB|=(1<<PB3);

    }

    ISR(TIMER0_OVF_vect)

    {

    OCR0 = wave[sample];

    sample++;

    if( sample >= 255 )

    sample = 0;

    }
    آموزش ساخت دستگاه برف ساز خانگی : https://www.eca.ir/forums/thread55009.html
    مقاله آموزشی 11 پروژه با AVR و بسکام: https://www.eca.ir/forums/thread31760.html
    _*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡_

    #2
    پاسخ : تبدیل کد یک برنامه به زبان C به بیسکام

    دوستان امکانپذیر هست که زبان C به بیسیک تبدیل بشه؟
    آموزش ساخت دستگاه برف ساز خانگی : https://www.eca.ir/forums/thread55009.html
    مقاله آموزشی 11 پروژه با AVR و بسکام: https://www.eca.ir/forums/thread31760.html
    _*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡_

    دیدگاه


      #3
      پاسخ : تبدیل کد یک برنامه به زبان C به بیسکام

      به طور خاص و عملی تبدیلی مستقیم برای بسکام به کدویژن یا برعکس وجودنداره ..

      تنها راهش اینه ، اصولی با تسلط بر روی هر دو زبان ، خط به خط به صورت دستی ، کد رو تغییر بدی ..

      دیدگاه


        #4
        پاسخ : تبدیل کد یک برنامه به زبان C به بیسکام

        تو نت بگرد همین الان یه کتاب C گیر بیار و شروع بکن. خیلی کمه. راحت می تونی بفهمی چیکار کرده.

        دیدگاه


          #5
          پاسخ : تبدیل کد یک برنامه به زبان C به بیسکام

          راحت نمیشه فهمید چه کاری انجام داده
          من C بلد نیستم ، اما به نظر وسطای برنامه اومده کد هگز گذاشته فقط
          کد هگز تو برنامه یعنی اینکه باید تبدیل کنی به اسمبلی و این تبدیل هم کلی داستان داره
          اما اگر برنامه برات خیلی با ارزش هست ، باید حسابی وقت بزاری روش
          موفق باشی
          همیشه به یاد خدا باش !

          دیدگاه


            #6
            پاسخ : تبدیل کد یک برنامه به زبان C به بیسکام

            ولی من احساس میکنم برنامه کامل نیست.

            دیدگاه


              #7
              پاسخ : تبدیل کد یک برنامه به زبان C به بیسکام

              این برنامه میدونید چیه
              کارش تولید موج SPWM هست که میخوایم با بچه ها با H پل و LC فیلتر به سینوسی خالص تبدیلش کنیم
              این هم تاپیکی که داریم روش کار میکنیم
              http://www.eca.ir/forum2/index.php?topic=80278.105
              این برنامه را هم از لینک زیر در آوردم , کامل هم هست:
              http://www.theengineeringprojects.com/2012/11/pure-sine-wave-inter-design-with-code.html
              آموزش ساخت دستگاه برف ساز خانگی : https://www.eca.ir/forums/thread55009.html
              مقاله آموزشی 11 پروژه با AVR و بسکام: https://www.eca.ir/forums/thread31760.html
              _*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡_

              دیدگاه


                #8
                پاسخ : تبدیل کد یک برنامه به زبان C به بیسکام

                این برنامه که در پایین قرار میدم , مشابه همون برنامه پست یک هست به زبان بیسیک
                فقط روش کارش کمی فرق داره و برایه کار دیگه طراحی شده
                اون برنامه زبان C (که در پست اول هست) برایه کار ما خیلی خوبه که مشکلش اینه که به زبان C هست
                اگر از دوستان کسی میتون اون برنامه را تبدیل کنه , خیلی خیلی ممنون میشم


                $regfile = "m8def.dat"
                $crystal = 4000000

                Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Disconnect , Prescale = 1
                Enable Interrupts

                Dim A As Byte , I As Byte
                I = 1

                Do

                A = Lookup(i , Dat)
                Pwm1a = A
                Waitus 64
                Incr I

                Loop

                End

                Dat:
                Data &H80 , &H83 , &H86 , &H89 , &H8C , &H8F , &H92 , &H95 , &H98 , &H9C , &H9F , &HA2 , &HA5 , &HA8 , &HAB , &HAE,
                Data &HB0 , &HB3 , &HB6 , &HB9 , &HBC , &HBF , &HC1 , &HC4 , &HC7 , &HC9 , &HCC , &HCE , &HD1 , &HD3 , &HD5 , &HD8,
                Data &HDA , &HDC , &HDE , &HE0 , &HE2 , &HE4 , &HE6 , &HE8 , &HEA , &HEC , &HED , &HEF , &HF0 , &HF2 , &HF3 , &HF5,
                Data &HF6 , &HF7 , &HF8 , &HF9 , &HFA , &HFB , &HFC , &HFC , &HFD , &HFE , &HFE , &HFF , &HFF , &HFF , &HFF , &HFF,
                Data &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFE , &HFE , &HFD , &HFC , &HFC , &HFB , &HFA , &HF9 , &HF8 , &HF7,
                Data &HF6 , &HF5 , &HF3 , &HF2 , &HF0 , &HEF , &HED , &HEC , &HEA , &HE8 , &HE6 , &HE4 , &HE2 , &HE0 , &HDE , &HDC,
                Data &HDA , &HD8 , &HD5 , &HD3 , &HD1 , &HCE , &HCC , &HC9 , &HC7 , &HC4 , &HC1 , &HBF , &HBC , &HB9 , &HB6 , &HB3,
                Data &HB0 , &HAE , &HAB , &HA8 , &HA5 , &HA2 , &H9F , &H9C , &H98 , &H95 , &H92 , &H8F , &H8C , &H89 , &H86 , &H83,

                Data &H80 , &H7C , &H79 , &H76 , &H73 , &H70 , &H6D , &H6A , &H67 , &H63 , &H60 , &H5D , &H5A , &H57 , &H54 , &H51,
                Data &H4F , &H4C , &H49 , &H46 , &H43 , &H40 , &H3E , &H3B , &H38 , &H36 , &H33 , &H31 , &H2E , &H2C , &H2A , &H27,
                Data &H25 , &H23 , &H21 , &H1F , &H1D , &H1B , &H19 , &H17 , &H15 , &H13 , &H12 , &H10 , &H0F , &H0D , &H0C , &H0A,
                Data &H09 , &H08 , &H07 , &H06 , &H05 , &H04 , &H03 , &H03 , &H02 , &H01 , &H01 , &H00 , &H00 , &H00 , &H00 , &H00,
                Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H01 , &H01 , &H02 , &H03 , &H03 , &H04 , &H05 , &H06 , &H07 , &H08,
                Data &H09 , &H0A , &H0C , &H0D , &H0F , &H10 , &H12 , &H13 , &H15 , &H17 , &H19 , &H1B , &H1D , &H1F , &H21 , &H23,
                Data &H25 , &H27 , &H2A , &H2C , &H2E , &H31 , &H33 , &H36 , &H38 , &H3B , &H3E , &H40 , &H43 , &H46 , &H49 , &H4C,
                Data &H4F , &H51 , &H54 , &H57 , &H5A , &H5D , &H60 , &H63 , &H67 , &H6A , &H6D , &H70 , &H73 , &H76 , &H79 , &H7C
                آموزش ساخت دستگاه برف ساز خانگی : https://www.eca.ir/forums/thread55009.html
                مقاله آموزشی 11 پروژه با AVR و بسکام: https://www.eca.ir/forums/thread31760.html
                _*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡_

                دیدگاه


                  #9
                  پاسخ : تبدیل کد یک برنامه به زبان C به بیسکام

                  ممنون میشم راهنمایی کنید؟
                  آموزش ساخت دستگاه برف ساز خانگی : https://www.eca.ir/forums/thread55009.html
                  مقاله آموزشی 11 پروژه با AVR و بسکام: https://www.eca.ir/forums/thread31760.html
                  _*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡_

                  دیدگاه


                    #10
                    پاسخ : تبدیل کد یک برنامه به زبان C به بیسکام

                    دوستان چی شد؟
                    کسی نمیتونه این کارو بکنه؟
                    آموزش ساخت دستگاه برف ساز خانگی : https://www.eca.ir/forums/thread55009.html
                    مقاله آموزشی 11 پروژه با AVR و بسکام: https://www.eca.ir/forums/thread31760.html
                    _*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡_

                    دیدگاه


                      #11
                      پاسخ : تبدیل کد یک برنامه به زبان C به بیسکام

                      برنامه زبان C در پست اول نقص داره. کامل نیست. اون مقادیر هگزا احتمال زیاد یه آرایه نوع فلش(احتمالا) هستش مثلا. چون مثلا آرایه ای به اسم wave داریم در حالی که تعریف نشده.

                      دیدگاه


                        #12
                        پاسخ : تبدیل کد یک برنامه به زبان C به بیسکام

                        به لینک اصلیش سر میزنید؟
                        ممکنه من بد کپی پیست کرده باشم:
                        http://www.theengineeringprojects.com/2012/11/pure-sine-wave-inter-design-with-code.html
                        آموزش ساخت دستگاه برف ساز خانگی : https://www.eca.ir/forums/thread55009.html
                        مقاله آموزشی 11 پروژه با AVR و بسکام: https://www.eca.ir/forums/thread31760.html
                        _*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡_

                        دیدگاه


                          #13
                          پاسخ : تبدیل کد یک برنامه به زبان C به بیسکام

                          سلام.
                          برنامه ای که گذاشتید یه مقداری ناقصه.البته نه خیلی.
                          من AVR رو با C کار نکردم.
                          ولی اصلاح شده کد C رو قرار میدم شاید دوستان دیگه بتونن پاسخ بدن.
                          کد PHP:
                          #include <stdlib.h>
                          #include <avr/io.h>
                          #include <util/delay.h>
                          #include <avr/interrupt.h>
                          #include <avr/sleep.h>
                          #include <math.h>
                          #include <stdio.h>


                          unsigned char wave[]{
                          0x800x830x860x890x8C0x900x930x96,
                          0x990x9C0x9F0xA20xA50xA80xAB0xAE,
                          0xB10xB30xB60xB90xBC0xBF0xC10xC4,
                          0xC70xC90xCC0xCE0xD10xD30xD50xD8,
                          0xDA0xDC0xDE0xE00xE20xE40xE60xE8,
                          0xEA0xEB0xED0xEF0xF00xF10xF30xF4,
                          0xF50xF60xF80xF90xFA0xFA0xFB0xFC,
                          0xFD0xFD0xFE0xFE0xFE0xFF0xFF0xFF,
                          0xFF0xFF0xFF0xFF0xFE0xFE0xFE0xFD,
                          0xFD0xFC0xFB0xFA0xFA0xF90xF80xF6,
                          0xF50xF40xF30xF10xF00xEF0xED0xEB,
                          0xEA0xE80xE60xE40xE20xE00xDE0xDC,
                          0xDA0xD80xD50xD30xD10xCE0xCC0xC9,
                          0xC70xC40xC10xBF0xBC0xB90xB60xB3,
                          0xB10xAE0xAB0xA80xA50xA20x9F0x9C,
                          0x990x960x930x900x8C0x890x860x83,
                          0x800x7D0x7A0x770x740x700x6D0x6A,
                          0x670x640x610x5E0x5B0x580x550x52,
                          0x4F0x4D0x4A0x470x440x410x3F0x3C,
                          0x390x370x340x320x2F0x2D0x2B0x28,
                          0x260x240x220x200x1E0x1C0x1A0x18,
                          0x160x150x130x110x100x0F0x0D0x0C,
                          0x0B0x0A0x080x070x060x060x050x04,
                          0x030x030x020x020x020x010x010x01,
                          0x010x010x010x010x020x020x020x03,
                          0x030x040x050x060x060x070x080x0A,
                          0x0B0x0C0x0D0x0F0x100x110x130x15,
                          0x160x180x1A0x1C0x1E0x200x220x24,
                          0x260x280x2B0x2D0x2F0x320x340x37,
                          0x390x3C0x3F0x410x440x470x4A0x4D,
                          0x4F0x520x550x580x5B0x5E0x610x64,
                          0x670x6A0x6D0x700x740x770x7A0x7D
                          }

                          void InitSinTable(){
                              
                          //sin period is 2*Pi
                              
                          const float step = (2*M_PI)/(float)256;
                              
                          float s;
                              
                          float zero 128.0;
                              
                          //in radians
                              
                              
                          for(int i=0;i<256;i++){
                                  
                          sinstep );
                                  
                          //calculate OCR value (in range 0-255, timer0 is 8 bit)
                                  
                          wave[i] = (uint8_tround(zero + (s*127.0));
                              }
                          }

                          void InitPWM(){
                          /*
                          TCCR0 - Timer Counter Control Register (TIMER0)
                          -----------------------------------------------
                          BITS DESCRIPTION
                          NO: NAME DESCRIPTION
                          --------------------------
                          BIT 7 : FOC0 Force Output Compare
                          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 generation mode [SET to 1]
                          Page | 43
                          BIT 2: CS02 Clock Select [SET to 0]
                          BIT 1: CS01 Clock Select [SET to 0]
                          BIT 0: CS00 Clock Select [SET to 1]
                          Timer Clock = CPU Clock (No Pre-scaling)
                          Mode = Fast PWM
                          PWM Output = Non Inverted
                          */

                              
                          TCCR0|=(1<<WGM00)|(1<<WGM01)|(1<<COM01)|(1<<CS00);
                              
                          TIMSK|=(1<<TOIE0);
                              
                          //Set OC0 PIN as output. It is PB3 on ATmega16 ATmega32
                              
                          DDRB|=(1<<PB3);
                          }

                          ISR(TIMER0_OVF_vect){
                              
                          OCR0 wave[sample];
                              
                          sample++;
                              if( 
                          sample >= 255 )
                              
                          sample 0;

                          تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

                          دیدگاه


                            #14
                            پاسخ : تبدیل کد یک برنامه به زبان C به بیسکام

                            نوشته اصلی توسط mehdi_nxp
                            سلام.
                            برنامه ای که گذاشتید یه مقداری ناقصه.البته نه خیلی.
                            من AVR رو با C کار نکردم.
                            ولی اصلاح شده کد C رو قرار میدم شاید دوستان دیگه بتونن پاسخ بدن.
                            هنوز هم مشکل داره.
                            مثلا sample توی کد یا همون آرایه wave

                            دیدگاه


                              #15
                              پاسخ : تبدیل کد یک برنامه به زبان C به بیسکام

                              نوشته اصلی توسط rozeh
                              هنوز هم مشکل داره.
                              مثلا sample توی کد یا همون آرایه wave
                              آرایه wave که مشخصه یه آرایه 256 بایتیه.

                              متغییر sample هم از اونجایی که تو زیر روال وقفه هست یه متغییر پابلیکه که خونه های آرایه wave رو به PWM میده.
                              تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

                              دیدگاه

                              لطفا صبر کنید...
                              X