نوشته اصلی توسط
مخفی
سلام
با صد بار ویراش
خودمم نفهمیدم چی نوشتم:
be name khoda
#include <mega16.h>
#include <stdio.h>
#include <delay.h>
bit a;
bit b.0=0;
bit b.1=0;
bit led;
void main();{
if(a=1){
b.0=1;
delay_us(100);
b.0=0;
led=1;
delay_ms(500);
led=0;
delay_ms(500);}
if(a=0){
b.1=1;
delay_us(100);
b.1=0;
led=1;
delay_ms(2000);
led=0;
delay_ms(2000);
}}
خب خوبه
استعدادشو داری
ولی چنتا نکته::::::::::::
ما اصلا همچین دستور برای ic نداریم تو برنامه قبلی هم بهت گفته بودیم کلا اینو حذف کن
متغیر بیت برای زمانیه که میدونیم متغیرمون فقط دوحالت پیدا میکنه دقت کردی ؟ متغیر
پایه های ورودی و خروجی متغیر حساب نمیشن و اینجوری تعریف نمیشن
و اما برنامه....
خب ما اینا وقتی که ورودیمون تغییر میکنه باید دو تا عمل انجام بدیم
هم تغییر 100 میکرو ثانیه ایه یه پورت
و هم چشمک زدن یه پورت دیگه
خب م چجوری باید اینکارو بکنیم؟
بینید وقتی ما یه دستوری رو که فقط یه بار میخواد انجام بشه میخوایم انجام بدیم کار راحته
ولی بعد از اون یه دستور دیگه ای باید بصورت مداوم انجام بشه
ما این تداوم رو چجوری ایجاد کنیم؟؟؟؟؟
( با رنگها سعی میکنم نقاط مختلف رو تو صحبنهام به هم مربوط کنم- جمله های همرنگ به هم مربوط میشن)
من برنامه رو مینویسم شما دقت کنید
#include<mega16.h>
#include<delay.h>
#define led PORTB.2
bit a=0;
bit b=0;
void main(){
while(1){
if ( a==1){
PORTB.0=1;
delay_us(100);
PORTB.0=0;
while(a==1){
led = b;
delay_ms(2000);
b=!b;
}
}
if(a==0){
PORTB.1=1;
delau_us(100);
PORTB.1=0;
while(a==0){
led=b;
delay_ms(500);
b=!b;
}
}
}}
payan
خب فکر کنم مشخص باشه درسته؟
بازم من خط به خط توضیح میدم چون ایجا یه دستور جدید رو هم میبینید که البته صرفا برای معرفی هست و محاسبه ای نداره
خودتون یه دور بخونید ببینید چجوریه
عرفان جان میتونی برنامه رو توضیح بدی؟
ممنون
علاقه مندی ها (Bookmarks)