بسم الله الرحمن الرحيم
اخى spark87
الامر بسيط ان شاء الله وما قمت به هو ببساطة طريقة برمجية للتعويض عن موديول PWM
وهذا بالطبع فى كود الارسال لان البك 16f84a لا يوجد به هذا الموديول
لكى يولد لنا بنضات او موجة بتردد مثلا 38 كيلوا هرتز وهو ما نحتاجة
وهى ببساطة عمل تكرار للنبضات 1 ثم 0 وهكذا بسرعه معينة
وهى تعطينا التردد المطلوب على شكل نبضات
ومن خلال التحكم فى امر الانتظار بين 1 ثم 0 نقدر نتحكم فى عرض النبضات
كما ترى هنا
كود:
unsigned char x,i;
void cari(){
portb.f0=1;
delay_us(13);
portb.f0=0;
delay_us(13);
}
هذه هى الدالة انشاء الموجة او التردد الى احنا محتاجينة
وكما تعلم ان الزمن الدورى للتردد هو مقلوبة اى قسمة 1 علي التردد
وهكذا يمكننا ايجاد الزمن اللازم لعمل تردد نريدة
وللتحكم فى عرض النبضة فى اطار التردد الذى نريدة
هذا يعنى اننا مثلا فى المثال بتعنا هنا تردد 38 كيلوا هرتز
بالحسابات نجد ان الزمن الدورى هو 26 ميكرو ثانية
اذن يجب ان نقوم باخراج 5 فولت لزمن محدد ثم 0 فولت لزمن محدد ايضا
على الا يزيد مجموع الزمن للخرجين دول عن 26 مايكرو ثانية
ولهذا تجدنى اقوم باخراج 5 فولت فى الدالة ثم انتظار 13 ميكرو ثانية
ثم اخراج 0 فولت ثم انتظار 13 يمكرو ثانية
وهذا يعطينا تساوى فى عرض النبضات
اى فى مكتبة الميكروسى الخاصة بالمديول PWM
هذا يعنى انك وضعت الرقم 127 داخل الامر
اى 50% من عرض النبضات
فاذا اردت مثلا ان تجعل عرض النبضات يساوى 100% او الرقم 255 فى المكتبة
فهذا يعنى انك سوف تقوم بتغير امر الانتظار الذى يلى الخرج 5 فولت
الى 24 مايكرو ثانية تقريبا
وتغير امر الانتظار الذى يلى الخرج 0 فولت الى 2 مايكرو ثانية
وهكذا
على الا يخرج الزمن عن 26 مايكرو ثانية وهو الرقم الخاص بالتردد 38 كيوا هرتز
وهكذاااا
ولكن هذه الطريقة تعطل حركة الميكرو اى ان الميكرو لن يفعل شىء سوا
التعامل مع الموجة
اما فى الميكروهات الموجود بها موديول فيمكنك فعل اشياء كثيرة اثناء تشغيل الموجة بشكل طبيعى
وهناك حل اخر
ولكن عن طريق التايمر
ابحث عنة للبشمهندس اشرف الخطيب
.................................................. .................................................. .........
اخى النعمي
لا يا اخى هذا ملا اقصدة ابحث فى المشاركات فى الموضوع ستجد ما اتكلم عنة عن
تعديل الرقم من 255 الى 35
..................................
نعم اقصد التنظيم فهناك طرق لتسهيل وتجميل شكل الكود وجعلة احترافى
وهذا مفيد لعدم الوقوع فى المشاكل التوهان وكثرة سطور الكود وهكذاا
.................................
بالنسبة لنسخة المايكرو سى فتفضل
http://www.qariya.info/vb/showthread.php?t=114277
وهى النسخة التى استخدمها
بالتوفيق لك ولنا جميعا نا شاء الله
.................................................. .................................................. ..........