من قبلا این مشکل را داشتم
تمام کارایی را هم که گفتن انجام دادم فایده نداشت
ولی خودم یه کار کردم، به نظر مسخره میاد ولی جواب گرفتم
توی برنامه وقتی فرمان قطع و یا وصل صادر میشه و یا قبل از اینکه چیزی روی ال سی دی نوشته میشه، هر بار، از تابع lcd_init استفاده کردم.
این کار باعث میشه اگر ال سی دی قاطی کرد، ال سی دی دوباره راه اندازی بشه و نیاز به ریست کردن مدار نباشه!!!
چون ما این تابع را خارج از حلقه while(1) فراخوانی میشه، باید مدار ریست بشه! ولی اگر توی حلقه این تابع دوباره اجرا بشه، نیاز به ریست کردن مدار نیست!!
موفق باشید