سلام با میکروی PIC12F1822 میخواستم یه فلاشر تابلو ال ای دی درست کنم که نورش قابل تنظیم بشاه الان بردمو مونتاژ کردم امادس اما توی برنامه نویسیش موندم
میخوام دو تا پایه های معمولی که به ماسفت وصله رو یه پی دبلیو ام روش ایجاد کنم میشه کمکم کنید
شنیدم باید با تایمر داخلی انکارو بکنم اما چه جوری؟
ممنون که هیچ وقت به من کمک نمیکنید !!!
بعدا هم یه سری انتظار دارن خودشون مشکل دارن بهشون کمک بشه اگه نا حق میگم بگید
و اما برنامه نویسی
اینقدر خودم بهش ور رفتم تا درست شد اینم برنامه اون معصومی هم که مثل خودم نیاز داره استفاده کنه تا مثل من محتاج خلق نشه
یه پی دبلیو ام داخل داخل میکرو اجرا میشه ما یه متغیر تعریف میکنم و دایم اون تایمر رو با اون عدد مقایسه میکنیم اگه این عدد دایم کم و زیاد شه ال ای دی هایی که توی خروجی قرار دادیم اروم کم رنگ و پر رنگ میشه بعدا فیلمشو قرار میدم
دلیل: ادغام دو پست برای جلوگیری از اسپم
میخوام دو تا پایه های معمولی که به ماسفت وصله رو یه پی دبلیو ام روش ایجاد کنم میشه کمکم کنید
شنیدم باید با تایمر داخلی انکارو بکنم اما چه جوری؟
ممنون که هیچ وقت به من کمک نمیکنید !!!
بعدا هم یه سری انتظار دارن خودشون مشکل دارن بهشون کمک بشه اگه نا حق میگم بگید
و اما برنامه نویسی
اینقدر خودم بهش ور رفتم تا درست شد اینم برنامه اون معصومی هم که مثل خودم نیاز داره استفاده کنه تا مثل من محتاج خلق نشه
#include<12f1822.h>
#use delay(internal=32mhz)
int8 x=0 , y=0 , t=0 , h=0 , o=0 , p=0;
int1 c=0 , l=0;
#INT_TIMER0
void TIMER0_isr(void)
{
x++;
if(x>30) x=0;
if(x<t)
{
output_high(pin_a0);
output_low(pin_a1);
}
else
{
output_low(pin_a0);
output_high(pin_a1);
}
}
void main()
{
enable_interrupts(INT_TIMER0);
enable_interrupts(GLOBAL);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1|RTCC_8_bit); //32us
while(true)
{
enable_interrupts(INT_TIMER0);
if(y==0)
{
t++;
if(t>=31)
{
y=1;
delay_ms(20);
}
}
if(y==1)
{
t--;
if(t<=0)
{
y=0;
delay_ms(20);
}
}
delay_ms(30);
}
}
یه پی دبلیو ام داخل داخل میکرو اجرا میشه ما یه متغیر تعریف میکنم و دایم اون تایمر رو با اون عدد مقایسه میکنیم اگه این عدد دایم کم و زیاد شه ال ای دی هایی که توی خروجی قرار دادیم اروم کم رنگ و پر رنگ میشه بعدا فیلمشو قرار میدم
دلیل: ادغام دو پست برای جلوگیری از اسپم