برای تولید شکل موج سینوسی از فرمول زیر استفاده می کنیم:

step = 128+(127*Sin N)

step عددی است که گام حرکتی را مشخص می کند. N نیز درجه می باشد که در اینجا ۳۶۰/۱٫۴۱=۲۵۵ خواهد بود، یعنی در هر گام ۱٫۴۱ درجه حرکت خواهیم داشت. ۲۵۵ ماکزیمم عددی است که می توان روی یک پورت ۸ بیتی نوشت. بنابراین با محاسبه اعداد از ۰ تا ۳۶۰ درجه ما یک آرایه ۲۵۵ عضوی با اعداد مختلف خواهیم داشت باید این ۲۵۵ عدد مختلف را با نهایت سرعت بر روی پورت مورد نظر قرار دهیم تا یک سیکل کامل تولید شود.

نکته: برای تغییر فرکانس موج تولید شده باید تاخیرهای مورد نیاز را بعد از حلقه های For قرار داد و هیچ وجه نباید درون حلقه های for تاخیر گذاشت (هرچه با سرعت بیشتری اعداد به پورت ارسال شوند کیفیت موج خروجی بهتر خواهد بود)

سایر موج ها نیز از همین شوه (پله ها) تولید می شود. که در انشاء الله اگر وقت شد نحوی تولید و فرمول آنها را نیز توضیح خواهید داد.