اطلاعیه

Collapse
No announcement yet.

[آموزش] فیلم های آموزش AVR

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

    پاسخ : پاسخ : [آموزش] فیلمآ‌های آموزش AVR

    نوشته اصلی توسط hamid reza_1364
    درمورد ارسال 9 بیتی هم من یه سوال دارم:
    در فیلم آموزشی طریقه ارسال و دریافت 9 بیتی را توضیح داده اید ولی یک سوال برای من پیش اومده و اون سوال اینه که وقتی slave آدرس خودش را در حالت 8 بیتی به master ارسال میکنه , از این قسمت به بعد master به صورت 8 بیتی با اون slave ارتباط برقرار میکنه تا بقیه slave ها که در حالت 9 بیتی هستند اطلاعات را دریافت نکنند. ولی اون شرط اولی که حتی توی slave اولی وجود داره (ارسال و دریافت 9 بیتی) مانع از دریافت اطلاعت در حالت 8 بیتی هم میشه! چون در زیر روال وقفه ابتدا بیت یکم از رجیسترUCSRB یعنی بیت RXB8 چک میشه!
    اگر تا اینجا اشتباه گفتم لطفا" تصحیح کنید.
    در اصل این برنامه فقط تا همین مرحله را بیشتر نمیتونه انجام بده؟!
    برای رفع این مشکل باید چه کار کرد؟؟ چون حالا هم master و هم slave مورد نظر در حالت 8 بیتی هستند و میخاهند با هم ارتباط برقرار کنند.
    برداشت شما صحیح نیست و ارسال و دریافت در تمام مراحل بصورت 9 بیتی انجام می شود.
    اوژن: به معنای افکننده و شکست دهنده است
    دانایی، توانایی است-Knowledge is POWER
    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

    دیدگاه


      پاسخ : پاسخ : پاسخ : [آموزش] فیلمآ‌های آموزش AVR

      سلام استاد عزیز آقای کی نژاد.
      من یک دور دیگه با دقت بیشتر فایلهای تصویری جلسه51 و52 را نگاه کردم .
      چیزی که من از برنامه و توضیحات شما متوجه شدم اینه که در ابتدا تمام slaveها و master بصورت 9 بیتی و MPCM=1 راه اندازی شده اند. حالا master میاد درحالتی که بیت 9 ام یک هست, آدرس یکی از slaveها رو میزاره توی اون 8 بیت باقیمانده و ارسال میکنه.
      از اونجایی که تمام slaveها در حالت 9 بیتی و MPCM=1 قرار دارند , این اطلاعات را دریافت میکنند.slaveها بررسی میکنند که آیا بیت 9ام یک است یا خیر .اگر یک بود , 8 بیت بعدی را بعنوان آدرس درنظر میگیرند و با آدرس خودشون مقایسه میکنند.توی این مثال آدرس فرستاده شده از طرف master با آدرس slave اول برابر است. حالا slave شماره یک بیت MPCM را صفر و UCSRA=0 و پایه TXD را برای ارسال فعال میکنه. و آدرس خودش را به master ارسال میکنه.
      حالا چند سوال برای من پیش اومد!! :redface:
      -زمانی که master منتظر دریافت داده از slave مورد نظره درچه حالتی پیکره بندی شده ؟ 8بیتی یا 9 بیتی؟

      -ارسال آدرس slave به master فقط 8 بیت داره و بیت 9ام ...؟ master این دیتای 8 بیتی را چطوری دریافت میکنه؟درصورتیکه در حالت 9 بیتی قرار داره !! این MPCM چیکار میکنه که دریافت master را از حالت شرطی خارج میکنه؟ و master میتونه 8 بیتی داده دریافت کنه؟!

      -مشروط شدن دریافت یا عدم دریافت توسط MPCM در slave ها چگونه رخ میدهد؟ درصورتیکه این شرطی شدن توسط عبارت شرطی در برنامه انجام میشه!! if(temp1&(1<<RXB8))
      امکان داره قسمت مشروط شدن دریافت یا عدم دریافت توسط MPCM را بیشتر توضیح بدید؟

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

      دیدگاه


        پاسخ : [آموزش] فیلمآ‌های آموزش AVR

        در پاسخ به سوالات شما و بصورت خلاصه:

        1- Master و Slave ها همگی در مد 9 بیتی هستند.

        2- در سمت Master از آنجایی که MPCM برابر با 0 است، پس صرف نظر از وضعیت بیت نهم ارسالی از طرف هر Slave، هر 9 بیت دریافت می شود. بیت نهم ارسالی از طرف هر Slave به Master در رجیستر UCSRB آن تعیین می شود و برابر 0 است.8 بیت از 9 بیت دریافتی در سمت Master در UDR قرار می گیرد و بیت نهم به RXB8 در UCSRB منتقل می شود.

        3- در سمت Slave اگر MPCM برابر با 1 باشد، مشروط بودن دریافت به این معنی است که اگر بیت نهم دریافتی 1 نباشد، اصولا کارکتری دریافت نمی شود و وقفه ای هم ایجاد نمی شود. علت اینکه در روتین وقفه برای تشخیص بیت نهم شرط گذاشته شده این است که این روتین وقفه برای هر دو وضعیت MPCM=0 و MPCM=1 مشترک نوشته شده و برای تشخیص وضعیت بیت نهم در شرایط MPCM=0، این شرط نوشته شده است. از خاصیت های این نوع کد نویسی این است که Master می تواند بجای Data در صورت لزوم یک آدرس جدید را بفرستد و از ارسال Data قبلی صرف نظر کند.
        اوژن: به معنای افکننده و شکست دهنده است
        دانایی، توانایی است-Knowledge is POWER
        برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
        وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
        قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
        اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
        ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

        دیدگاه


          پاسخ : پاسخ : [آموزش] فیلمآ‌های آموزش AVR

          ممنون آقای کی نژاد از پاسخ شما.
          چندتا سوال درمورد ADC هم دارم که ممنون میشم به اونها پاسخ بدهید.
          1-مقداردهی به پورت A برای تعیین جهت و وضعیت آنها چگونه باید باشد.مثلا" اگر فرض کنیم از هر هشت پایه ADC موجود از میکرو ATMEGA16 استفاده میکنیم , جهت و وضعیت این پورت باید به کدام صورت باشد؟ البته جهت این پورت باید ورودی انخاب شود یعنی DDRA=0x00 ولی درمورد وضعیت آن؟ PORTA=0x00 یا PORTA=0xFF ؟
          ---------------------------------
          2-بعد از فرایند تبدیل و یک شدن بیت ADIF و خواندن رجیستر ADCW بیت ADFI چگونه صفر میشود؟؟ آنچه که من در قسمت زیربرنامه تبدیل و خواندن ADC از برنامه کدویژن دیده ام به اینصورت عمل کرده که باید در این بیت عدد یک را بنویسیم تا این بیت صفر شود!!!!؟؟؟؟ آیا این موضوع صحیح است؟؟؟
          ---------------------------------
          3-در حالت تک تبدیل , تک ورودی آیا رجیستر SFIOR و ACSR باید مقداردهی شوند؟؟
          ---------------------------------
          ممنون از پاسخهای شما
          با تشکر
          حاصلظرب توان در ادعا مقداری ثابت است.هرچه توان انسان کمتر باشد ادعای او بیشتر است و هرچه توان انسان بیشتر شود ادعایش کمتر میگردد.(دکتر حسابی)

          دیدگاه


            پاسخ : [آموزش] فیلمآ‌های آموزش AVR

            سلام استاد کی نژاد
            در جلسه 50 نحوه شبکه کردن چند میکرو بوسیله usart رو آموزش دادین که از شما بابت زحماتتون تشکر میکنم.واما سوال من :
            در تابع زیر شرط خارج شدن از حلقه بینهایت while یک شدن پرچم RXC است( درسته ؟) وزمانی این پرچم یک میشود که بافر دیتای UBR کامل شود.اما مقادیر temp و Data بعد از حلقه while بارگذاری میشوند.منظورم اینه که برنامه داخل حلقه بینهایت گیر میکنه چون وقتی وارد شرط حلقه while میشه دیگه ازش بیرون نمیاد.
            خواهشا توضیح دهید

            کد:
            unsigned char Receive_Data(void)
            {
             unsigned char temp;
             Timeout=Timeout_value;
             do
             {
             if(Timeout==0)return 0;
             }
             while(!(UCSRA & (1<<RXC)));
             temp=UCSRB;
             Data=UDR;
             return 1;
            }

            با تشکر
            چه یافت آنــکه تــو را گم کرد وچه گم کرد آنـکه تــو را یافت.

            دیدگاه


              پاسخ : پاسخ : [آموزش] فیلمآ‌های آموزش AVR

              نوشته اصلی توسط hamid reza_1364
              چندتا سوال درمورد ADC هم دارم که ممنون میشم به اونها پاسخ بدهید.
              1-مقداردهی به پورت A برای تعیین جهت و وضعیت آنها چگونه باید باشد.مثلا" اگر فرض کنیم از هر هشت پایه ADC موجود از میکرو ATMEGA16 استفاده میکنیم , جهت و وضعیت این پورت باید به کدام صورت باشد؟ البته جهت این پورت باید ورودی انخاب شود یعنی DDRA=0x00 ولی درمورد وضعیت آن؟ PORTA=0x00 یا PORTA=0xFF ؟
              ---------------------------------
              2-بعد از فرایند تبدیل و یک شدن بیت ADIF و خواندن رجیستر ADCW بیت ADFI چگونه صفر میشود؟؟ آنچه که من در قسمت زیربرنامه تبدیل و خواندن ADC از برنامه کدویژن دیده ام به اینصورت عمل کرده که باید در این بیت عدد یک را بنویسیم تا این بیت صفر شود!!!!؟؟؟؟ آیا این موضوع صحیح است؟؟؟
              ---------------------------------
              3-در حالت تک تبدیل , تک ورودی آیا رجیستر SFIOR و ACSR باید مقداردهی شوند؟؟
              1- با فرض اعمال ولتاژ آنالوگ به ورودی پین ها همان وضعیت PORTA=0x00 را قرار دهید.

              2- اگر وقفه ADC ایجاد شود و به روتین وقفه پرش شود، ADIF بصورت خودکار پاک می شود. اما در غیر شرایط ایجاد وقفه ADC برای پاک کردن آن باید در محل این فلگ 1 نوشته شود.

              3- در مد Single Conversion شروع تبدیل از طریق نوشتن 1 در ADSC انجام می شود و مقدار دهی مناسب به SFIOR مربوط به مد Auto trigger است. بنابراین در فرض سوال شما مقدار دهی خاصی به SFIOR برای مد Single Conversion لازم نیست. رجیستر ACSR هم مربوط به مقایسه کننده آنالوگ است و در فرض سوال ارتباطی با شروع تبدیل ADC ندارد (اما در صورت قرار دادن مقایسه کننده به عنوان منبع تریگر، مقدار این رجیستر مهم خواهد بود).

              نوشته اصلی توسط صادق ابراهیمی
              در تابع زیر شرط خارج شدن از حلقه بینهایت while یک شدن پرچم RXC است( درسته ؟) وزمانی این پرچم یک میشود که بافر دیتای UBR کامل شود.اما مقادیر temp و Data بعد از حلقه while بارگذاری میشوند.منظورم اینه که برنامه داخل حلقه بینهایت گیر میکنه چون وقتی وارد شرط حلقه while میشه دیگه ازش بیرون نمیاد.
              یک شدن RXC به معنای موجود بودن کاراکتر جدید در بافر دریافت است که این کاراکتر جدید در دستورات بعد از while خوانده می شود. بنابراین چه دلیلی دارد که برنامه در while متوقف بماند؟
              اوژن: به معنای افکننده و شکست دهنده است
              دانایی، توانایی است-Knowledge is POWER
              برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
              وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
              قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
              اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
              ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

              دیدگاه


                پاسخ : پاسخ : پاسخ : [آموزش] فیلمآ‌های آموزش AVR

                با سلام خدمت استاد بزرگوارم آقای کی نژاد.
                باز هم از اینکه جواب سوالهای من را میدهید بسیار سپاسگزارم.
                آقای کی نژاد من با ترکیب این دو بخش آموزشی که شما در اختیار همه قراردادین(UART و ADC) اقدام به انجام پروژه ای کردم که کمی با مشکل مواجه شده!! از شما استاد خوبم خواهش دارم که در این رابطه نیز من را یاری کنید. شرح پروژه به این صورت است که:

                چندتا سنسور دما در فاصله های مختلف دارم که باید دمای اونها را از یک مرکز بخونم و بترتیب نشون بدم.
                من برای هر سنسور یک ATMEGA8 قراردادم که در کل بعنوان slave درنظر گرفته میشه. چیزی در حدود 10 تا از این slaveها دارم و یک master که باید دمای تک تک سنسورها را بخونه!
                هر slave یک آدرس مخصوص به خودش را داره که master بتونه براحتی هر slave یی را پیدا کنه.
                master ابتدا آدرس یکی از slave ها را روی خط میفرسته و بعد از مدتی کوتاه , یک دستور به slave انتخاب شده ارسال میکنه.(توی slaveها وقفه دریافت داده را فعال کردم. )حالا slave با توجه به دستور دریافتی قدام به انجام اون میکنه(خواندن دما از روی سنسورLM35 و ارسال آن به master) .بعد از ارسال دما slave از زیر روال وقفه دریافت خارج میشه و به کار عادی خود مشغول میشه تا اینکه مجددا"master اون را فراخوانی بکنه.
                مشکل من اینجاست که برنامه slave برای بار اول خوب اجرا میشه و دما را میفرسته و master هم اون را نشون میده . ولی به محض اینکه master شروع به ارتباط مجدد با همون slave بکنه , slave توی وقفه و بدنه اصلی برنامه شروع به گردش میکنه ,مثل اینکه مدام داره وقفه میاد!!!
                احتمالا" مشکل از بعد از اولین پاسخ slave شروع میشه!!
                فکر میکنم مشکل از یکی از بیتهایی باشه که وقفه را راه اندازی میکنه و اون بیت بعد از اولین پاسخ توسط slave یک میشه و در ارسال های بعدی master باعث میشه کهslave توی یه حلقه بینهایت گیر کنه!!!
                حالا این بیت کدومه ؟؟؟؟ نمیتونم پیداش کنم!!!
                فایل برنامه و فایل ساده شده پروتئوس(بدون MAX485 و با اتصال مستقیم دو میکرو) را میتونید از لینک زیر دانلود کنید.
                http://www.4shared.com/rar/9ME2V3i6b...n_net__1_.html
                حاصلظرب توان در ادعا مقداری ثابت است.هرچه توان انسان کمتر باشد ادعای او بیشتر است و هرچه توان انسان بیشتر شود ادعایش کمتر میگردد.(دکتر حسابی)

                دیدگاه


                  پاسخ : پاسخ : پاسخ : [آموزش] فیلمآ‌های آموزش AVR

                  بنظر میاد مشکل از اونجایی آغاز میشه که توی slave برای ارسال اطلاعات به master از دستور putchar() استفاده میشه!!
                  یعنی به محض ارسال اطلاعات یه اتفاقی میافته که برای دریافت های بعدی و به دنبال اون ارسال های بعدی دچار مشکل میشه!!
                  این هم یه برنامه خیلی ساده تر که باز هم یه مشکل نسبتا" مشابه داره!
                  http://www.4shared.com/rar/luKo8mDnce/masterslave.html
                  توی این برنامه slave فقط یکبار دستورات master را اجرا میکند!! درصورتی که باید هربار پاسخ آن را بدهد.!!
                  این نکته را هم باید بگم که مقدارUCSRA در slave بعد از ارسال اطلاعات به مقدار60 هگز تبدیل میشه یعنی بیت TXC (بیت ششم) برابر یک میشه و همینطور میمونه!! آیا مشکل از یک ماندن این بیت نیست؟؟ نباید بعد از ارسال اطلاعات این بیت را صفر کرد؟؟؟
                  حاصلظرب توان در ادعا مقداری ثابت است.هرچه توان انسان کمتر باشد ادعای او بیشتر است و هرچه توان انسان بیشتر شود ادعایش کمتر میگردد.(دکتر حسابی)

                  دیدگاه


                    پاسخ : پاسخ : پاسخ : [آموزش] فیلمآ‌های آموزش AVR

                    سلام آقای کی نژاد
                    مشکل را یافتم!! :applause: :wow: *-
                    مشکل از بیت TXC مربوط به رجیستر UCSAR میشه!! این بیت بعد از ارسال داده از slave , یک باقی میمونه و باعث ایجاد اختلال در برنامه میشد! oo:
                    من بعد از ارسال داده از slave این بیت را با نوشتن عدد یک درون آن , صفرش میکنم و دیگه مشکلی نداره :nice:
                    فقط یک سوال کوچیک دارم و اون سوال اینه که برای صفر کردن این بیت بعد از دستور آخرین ارسال باید چند میلی ثانیه صبر کنم و بعد این بیت را صفر کنم! :question: [-(
                    چرا تکمیل ارسال و یک شدن این بیت اینقدر زمان لازم داره؟؟؟؟ :-/مگه اینطور نیست که بعد از دستور putchar دیگه میکرو درگیر UART نیست؟؟ من فکر میکردم که به محض پایان دستور putchar هر تغییری را میتوان روی رجیسترها ایجاد کرد!! ولی میبینم که بعد از این دستور باید حداقل 3 میلی ثانیه صبر کرد!!
                    حاصلظرب توان در ادعا مقداری ثابت است.هرچه توان انسان کمتر باشد ادعای او بیشتر است و هرچه توان انسان بیشتر شود ادعایش کمتر میگردد.(دکتر حسابی)

                    دیدگاه


                      پاسخ : [آموزش] فیلمآ‌های آموزش AVR

                      ضمن سلام و خسته نباشید . به نظر میرسه جلسات 42-43 -45 -46 صدا خیلی ضعیف هست من آموزش های شما رو به کمک تبلت دنبال میکنم متاسفانه حتی با هدفون هم صدا ضعیف هست . میخواستم بدونم راهی وجود داره که بتونم صدای این جلسات رو تقویت کنم - ممنون

                      دیدگاه


                        پاسخ : پاسخ : پاسخ : [آموزش] فیلمآ‌های آموزش AVR

                        نوشته اصلی توسط hamid reza_1364
                        شرح پروژه به این صورت است که
                        این تاپیک مربوط به محتوای فیلم های اموزشی است و اگر سوالی خارج از چارچوب فیلم های آموزشی مطرح است، آن را در تاپیک مجزایی مطرح کنید.

                        نوشته اصلی توسط سایمون

                        به نظر میرسه جلسات 42-43 -45 -46 صدا خیلی ضعیف هست من آموزش های شما رو به کمک تبلت دنبال میکنم متاسفانه حتی با هدفون هم صدا ضعیف هست . میخواستم بدونم راهی وجود داره که بتونم صدای این جلسات رو تقویت کنم.
                        متاسفانه در برخی جلسات ابتدایی که ضبط از روی دستکتاپ شروع شد، کیفیت صدا به دلیل تنظیم نبودن میکروفن چندان مناسب نبود که در بخش های بعد این وضعیت تصحیح شد.
                        اوژن: به معنای افکننده و شکست دهنده است
                        دانایی، توانایی است-Knowledge is POWER
                        برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                        وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                        قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                        اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                        ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                        دیدگاه


                          پاسخ : [آموزش] فیلمآ‌های آموزش AVR

                          نوشته اصلی توسط سایمون
                          راهی وجود داره که بتونم صدای این جلسات رو تقویت کنم
                          در تنظیمات نرم افزار پلیر اگر گزینه ای مانند Normalizer وجود داشته باشد با فعال کردن آن صدا تقویت می شود مثلا در KMPlayer این گزینه وجود دارد.
                          گاهی افرادی به موفقیت های بزرگ می رسند، تنها به این دلیل ساده که نمی دانند کاری که به آن دست زده اند بسیار دشوار، بلکه غیر ممکن است.

                          دیدگاه


                            پاسخ : [آموزش] فیلمآ‌های آموزش AVR

                            در بخش هفدهم آموزش (صفحه کلید) ظاهرا سون سگمنی که استفاده شده به همراه LED ها بصورت پکیج هست که طبق گفته شما بصورت مالتی پلکس هستند و خطوط دیتا بصورت مشترک بین انها هست . میخواستم بدونم اگر این سخت افزار رو در اختیار نداشته باشیم و بخواهیم فقط از چند عدد سون سگمنت جداگانه که بصورت صحیح نصب شده اند استفاده کنیم ( بدون led ) آیا مشکلی برای کارکرد مدار بوجود نمیاد؟ برنامه لازم هست تغییراتی داشته باشه ؟

                            دیدگاه


                              پاسخ : [آموزش] فیلمآ‌های آموزش AVR

                              استفاده از روش مالتی پلکس و خطوط مشترک دیتا به دلیل کاهش در تعداد I/O های مصرفی است. چنانکه به عنوان مثال برای 8 عدد 7segment با لحاظ dotpoint به 64 خط I/O نیاز است. در حالی که با استفاده از روش مالتی پلکس این تعداد به 16 عدد کاهش می یابد. ضمنا در فیلم آموزشی 7segment ها بصورت مجزا هستند و خطوط Data از خارج به هم متصل شده اند و شما هم می توانید به همین ترتیب عمل کنید.
                              اوژن: به معنای افکننده و شکست دهنده است
                              دانایی، توانایی است-Knowledge is POWER
                              برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                              وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                              قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                              اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                              ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                              دیدگاه


                                پاسخ : [آموزش] فیلمآ‌های آموزش AVR

                                با سلام
                                به یکی از دوستام ویدئو های جنا ب مهندس رو دادم
                                ازم قول گرفت که حتما تشکر ویژه از ایشون داشته باشم
                                از طرف خودم و دوستم از جناب مهندس کی نژاد بخاطر زحمات بی منت شون صمیمانه ابراز اردات و تشکر رو دارم
                                .The best question deserves a better answer
                                =-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=
                                «پناه»می برم «به خدا»
                                از عـیبی که ، «امروز» در خود می بینم، و «دیروز» «دیگران را» به خاطر، «هـمان عیـب» ملامت کرده ام.
                                محتاط باشیم، در «سرزنش» و «قضاوت کردن دیگران». وقتی نه از «دیروز او» خبر داریم و نه از "فردای خودمان" .

                                دیدگاه

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