Timer Pre Loading

  Рет қаралды 6,919

Khaled Magdy

Khaled Magdy

Күн бұрын

Пікірлер: 38
@ahmedkhaled9032
@ahmedkhaled9032 5 жыл бұрын
انا مش عارف اقول لحضرتك كميه الاستفادة اللي بستفادها من حضرتك اد اة رغم اني باخد دبلومة بره بس انت كل مرة بضيفلي جديد اسلوبك متميز جددا ربنا يزيد علمك
@DeepBlueMbedded
@DeepBlueMbedded 5 жыл бұрын
دا شىء يسعدنى جدا و الله .. ربنا يحفظك و يوفقك ^^
@mohammedahmed-br5jt
@mohammedahmed-br5jt 6 жыл бұрын
جزاك الله خيرا يا استاذ خالد
@DeepBlueMbedded
@DeepBlueMbedded 6 жыл бұрын
و اياكم اخی الكريم ^^
@belfakiromar4552
@belfakiromar4552 4 жыл бұрын
The best, thank you so much sir !!!
@abdelrahmanyousef2237
@abdelrahmanyousef2237 5 жыл бұрын
مش المفروض حضرتك هنا كنا نعمل كدا TMR1L=0xD0 TMR1H=0x3C ولا عادي نحط ال values ع طول كدا ف ال timer
@DeepBlueMbedded
@DeepBlueMbedded 5 жыл бұрын
سواء قسمته ل امرين او كتبتها ف سطر واحد مش هتفرق. TMR1 دا 16 بت
@accorzakaria3251
@accorzakaria3251 5 жыл бұрын
TMR1L=0xB0;
@youssefelidrissi9471
@youssefelidrissi9471 4 жыл бұрын
for Tutorial 11 second method of timer preloading correction X = (2 / 0.06553) = 30.52 overflows Thus, the value which we’ll be loading to Timer1 is => (TMR1 = 31536) void interrupt ISR () { // Check The Flag Bit if (TMR1IF) { C++; if(C==31) // Note That We're Taking The First Overflow Into Account! { // Load The Value Which We've Calculated To The TMR1 Register TMR1 = 31536; // Event2 = Toggle LED RB0 = ~RB0; // Clear The Global Counter C = 0; } TMR1IF = 0; // Clear The Flag Bit } }
@DeepBlueMbedded
@DeepBlueMbedded 4 жыл бұрын
Thanks for this feedback. I've to double-check this point and will get back to you 👌
@sayedmohsen7714
@sayedmohsen7714 3 жыл бұрын
لو سمحت انا ليه بيظهر عندى الاشارة على ال oscilliscope بشكل معوج شوية مش معدول و مش مطلع الثانية بالظبط مع انى مظبط الكود و متاكد منه؟
@sayedmohsen7714
@sayedmohsen7714 3 жыл бұрын
#include #include "config.h" #define _XTAL_FREQ 4000000 //Make variable for counter of OverFlows unsigned char c = 0; void main(void) { //Make RB0 output pin TRISB0 = 0; //Make RB0 low RB0 = 0; //Enable Timer1 interrupt TMR1IE = 1; PEIE = 1; GIE = 1; //Configure Timer module to operate in Timer Mode //Count from start TMR1 = 15536; //Select Local Clock to be in timer mode TMR1CS = 0; //Set the pre-scalar to 1:1 T1CKPS0 = 0; T1CKPS1 = 0; //Turn On Timer1 Module TMR1ON = 1; //Write the system's main routine while(1){ } return; } __interrupt() void ISR(void){ if(TMR1IF){ TMR1 = 15536; c++; if(c == 15){ RB0 = ~RB0; c = 0; } TMR1IF = 0; } }
@sayedmohsen7714
@sayedmohsen7714 3 жыл бұрын
ده الكود
@suzanaentertainment6599
@suzanaentertainment6599 5 жыл бұрын
جزاك الله خيرا
@DeepBlueMbedded
@DeepBlueMbedded 5 жыл бұрын
و اياكم يارب ^^
@accorzakaria3251
@accorzakaria3251 5 жыл бұрын
يمكن كتابة 15536 ب Hex TMR1=0x3CB0;
@DeepBlueMbedded
@DeepBlueMbedded 5 жыл бұрын
صحيح تماما
@abdelrahmanelzennary3760
@abdelrahmanelzennary3760 4 жыл бұрын
سلام عليكم لو سمحت لو بستخدم كريستالة ٢٠ ميجا رقم الpreloading بيطلع بالسالب ازاي احل المشكلة دي؟ هل بأني ازود 65536 على الرقم السالب اكتر من مرة لحد مايبقى موجب؟
@DeepBlueMbedded
@DeepBlueMbedded 4 жыл бұрын
حلو السؤال دا جدا لما يحصل معاك كدة تعرف انو لازم تزود ال Prescaler بدل ما هو 1 خلاص خليه 8 مثلا و عوض فالمعادلة لو عايز الTout يكون ب 0.05 ثانية على اساس انك تعمل 20 انتربت علشان تعرف انو عدى زمن قدره واحد ثانية ف خلاص عوض عن الكريستالة ب20ميجا و البريسكايلر ب8 و هيطلع معاك قيمة البريلود للتايمر ب 34285 و طبعا ما تنساش فالكونفيجوريشن بتاعتك التايمر انك تختار قيم البيتات T1CKPS1:T1CKPS0 تخليهم 1 و 1 علشان البريسكايلر يبقا 8 بس كدة .. اعمل كدة و الدنيا هتظبط معاك ان شاء الله
@osamaemam4230
@osamaemam4230 4 жыл бұрын
newmain.c:34:6: error: variable has incomplete type 'void' void interrupt ISR() ^ newmain.c:34:15: error: expected ';' after top level declarator void interrupt ISR() ^ انا بيطلعلي error بالشكل ده ومش فاهم فيه ايه حاولت كتير ومش فاهم فين المشكله
@DeepBlueMbedded
@DeepBlueMbedded 4 жыл бұрын
اه دا تغيير عملوه فالنسخ الحديثة من الكومبايلر غيروا الidentifier بتاع الisr بقی يتكتب بالشكل ال تحت دا void __interrupt() ISR(void) { } بس اعملها بالشكل دا و هتشتغل معاك الموضوع دا كذا حد اشتكی منه من سنتين تقريبا و كتبت عنه ملحوظة علی المقالات فالموقع 😀
@osamaemam4230
@osamaemam4230 4 жыл бұрын
@@DeepBlueMbedded تمام شكرا جدا فعلا اتغير واتعمل خلاص
@ms13leon
@ms13leon 5 жыл бұрын
بس الليد مش شغاله غير مره واحده بس !!!
@DeepBlueMbedded
@DeepBlueMbedded 5 жыл бұрын
حاولى تحطى سلسكوب زى ماعملت فى الشرح كدة و شوفى شكل الاشارة ايه فى السميوليشن لو علطول HIGH و الليد منورة مرة واحدة فقط ف الكلام دا معناه ان تقريبا حضرتك ناسية حاجة ف تفعيل الانتربت نفسه, مش بيحصل فاير للانترنت او بيحصل فاير و بندخل فالانتربت سيرفس روتين مرة واحدة بس و دا ممكن يكون نتيجة انك نسيتى تصفرى الFlag اتاكدى من الكلام دا و جربى تانى و ان شاء الله تظبط معاكى
@ms13leon
@ms13leon 5 жыл бұрын
ده معايا من الفيديو اللى فات ان الانتربت فعلا مش شغال غير مره واحده بس وانا مصفره ال FLAG فى الاخر عادى فمش عارفه ايه المشكله !! بس سؤال ايه اللى هيخليه يعيد الكود تانى مادام مش جوا loop ؟؟؟
@DeepBlueMbedded
@DeepBlueMbedded 5 жыл бұрын
هيعيد الكود تانى من غير لووب علشان التايمر بيعد و كل ما يخلص عد بيـ فاير انتربت و ندخل تانى ننفذ تانى الكود اللى جوا الانتربت سيرفس روتين ف فى نهاية المطاف هتلاقى الكود ال جوا الانتربت سيرفس روتين عمال يتنفذ بشكل متكرر بيفصل بين كل مرة تكرار واللى وراها زمن قدره 1ث او حسب ما احنا ظابطين قيمة المدة دى
@DeepBlueMbedded
@DeepBlueMbedded 5 жыл бұрын
كويس طيب يعنى دى مشكلة قديمة عندك لسا ما اتحلتش XD لازم نحلها الاول و بعدين نشوف الباقى لو حابة ترفعى فايل الكود درايف و تحطى اللينك اشوفه معاكى اتس اوكى
@ms13leon
@ms13leon 5 жыл бұрын
www.mediafire.com/file/1vudhv7ul88zq5w/Timer1_led.X.rar/file ده لينك اهو
@zakiahmed8162
@zakiahmed8162 4 жыл бұрын
لو سمحت يا هندسة ممكن تشوف الكود ده مش شغال ليه انا شغال علي code block #define _XTAL_FREQ 4000000 #include unsigned char c=0; void main(void) { TRISB0=0; RB0=1; TMR1IE=1; PEIE=1; GIE=1; TMR1=15536; TMR1CS=0; T1CKPS0=0; T1CKPS1=0; TMR1ON=1; while(1){ } return; } void ISR(void) __interrupt { if(TMR1IF){ TMR1=15536; c++; if(c==20){ RB0=~RB0; c=0; } TMR1IF=0; } }
@DeepBlueMbedded
@DeepBlueMbedded 4 жыл бұрын
الidentifier بتاع الisr فالنسخ الحديثة من الكومبايلر بقی يتكتب بالشكل دا void __interrupt() ISR(void) { } اعملها كدة و شوف .. انا كنت حابب اعرف يعنی ايه مش شغال؟ ايه المشكلة اقصد ؟ 😀 هل مش بيكومبايل ؟ هل مش بيلينك صح ؟ هل بيبيلد تمام و يطلع بيناری فايل بس البايناری مش شغال صح فالسميويليشن ؟
@zakiahmed8162
@zakiahmed8162 4 жыл бұрын
@@DeepBlueMbedded void __interrupt() ISR(void) كتبته كده فييه ايرور syntax error: token -> '__interrupt' ;
@zakiahmed8162
@zakiahmed8162 4 жыл бұрын
@@DeepBlueMbedded لا مش شغال اقصد بيكومبايل عادي بس مش بيلنك الليد الليد low طول الوقت
@zakiahmed8162
@zakiahmed8162 4 жыл бұрын
@@DeepBlueMbedded ???
@karimsh4281
@karimsh4281 4 жыл бұрын
جزاك الله كل خير
Lecture 13: Timer PWM Output
16:47
Embedded Systems and Deep Learning
Рет қаралды 108 М.
Вопрос Ребром - Джиган
43:52
Gazgolder
Рет қаралды 3,8 МЛН
Hilarious FAKE TONGUE Prank by WEDNESDAY😏🖤
0:39
La La Life Shorts
Рет қаралды 44 МЛН
I2C Tutorial (Demo)
41:34
Khaled Magdy
Рет қаралды 6 М.
How the Clock Tells the CPU to "Move Forward"
14:22
Core Dumped
Рет қаралды 158 М.
How does a USB keyboard work?
34:15
Ben Eater
Рет қаралды 3,3 МЛН
Designing Billions of Circuits with Code
12:11
Asianometry
Рет қаралды 612 М.
КАК УСТРОЕН TCP/IP?
31:32
Alek OS
Рет қаралды 266 М.
Intro To I2C Demo & LABs
9:55
Khaled Magdy
Рет қаралды 3,3 М.
Что такое дагестанский кирпичный завод!
0:53
АВТОБРОДЯГИ - ПУТЕШЕСТВИЯ НА МАШИНЕ
Рет қаралды 746 М.
ПОСТАРЕЛА ЗА 1 ДЕНЬ НА 20 ЛЕТ - МУЖСКОЕ ЖЕНСКОЕ
55:44
ПРИЯТНЫЙ ИЛЬДАР
Рет қаралды 677 М.
Таким раствором работать одно удовольствие
1:00
Профессия созидатели
Рет қаралды 954 М.
Массаж головы пранк🤣
0:55
Kirya Kolesnikov
Рет қаралды 5 МЛН
КОРОЧЕ ГОВОРЯ, НЕДЕЛЯ БЕЗ ТЕЛЕФОНА
3:54
The Million view clip on China's Tiktok P2428 #shorts #gochannel
0:15
Go Channel TV
Рет қаралды 29 МЛН
НЕ ДАМ ЕЁ В ОБИДУ😡 #shorts
0:24
Паша Осадчий
Рет қаралды 1,6 МЛН