PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مشکل با کد نویس کد ویژن در لامپ چشمک زن طراحی با پروتیوس



k1.technology
05-01-2014, 11:49
با سلام
با پروتیوس یه پروژه لامپ چشمک زن درست کردم 16 ال ای دی
8 تا 8تا جدا از همن میخوام کد و طوری بنویسم که 8 ال ای دی از لامپ اول شروع و همزمان از اخر 8 ال ای دی دوم شروع به روشن شدن کنند و به صورت رفت و برگشت باشن!
مشکلم اینه که 8 تای دومی روشن میشن اما دوباره از صفر شروع به روشن شدن میشن میخوام که به صورت رفت و برگشت روشن شن
تو عکسی که اپلود کردم کد نویس و طراحی هست

Aghaeifar
05-01-2014, 12:06
سلام

توی حلقه for اول مثل for دوم پورت C رو خاموش روشن نمی کنی.

k1.technology
05-01-2014, 13:57
من متوجه منظورتون نشدم ميشه بگين كجا بايد اصلاح كنم. صحيشو ميگين !ممنون

Aghaeifar
05-01-2014, 14:04
شما دو تا حلقه ی for داری در برنامه ات. در حلقه ی for اولی فقط پورت D رو خاموش روشن می کنی در حالیکه باید پورت C رو هم روشن خاموش بکنی در کنار اون.

k1.technology
05-01-2014, 14:22
اگه در قسمت فور اولي سي را خاموش روشن كن هر دو از بالا به پايين روشن خاموش ميشن وبرگشتتشون هم همينطوره ولي من ميخوام پورت سي از اخرين ال اي دي روشن بشه به سمت اولين ال اي دي بياد و پورت دي از اولين ال اي دي به اخرين ال اي دي همزمان بيان تو يه نقطه كه انگار چراغ از پايين به بالا داره كامل روشن خاموش ميشه

amiray
05-01-2014, 18:00
سلام
شما میتونین یه حلقه بزارین که از 1 تا 8 رو بشماره بعد بیاین تو اون دو متغیر برای هر پورت تعریف کنین و مقدار اولیه یکی رو 1 و دیگری رو 128 قرار بدین بعد اولی رو در یه پورت و ان یکی رو در پورت دیگه قرار بدین بعد اولی رو ضرب در 2 کنین و اون یکی رو هر بار تقسیم بر دو کنین.و بعد از حلقه for (داخل while) جای این مقدار این متغیر ها رو با هم عوض کنین.
فکر کنم بشه تو 10-15 خط نوشتش.

k1.technology
05-01-2014, 19:38
ممكنه شما اين كدو برام بنويسين. ممنون ميشم

amiray
05-01-2014, 20:53
ممكنه شما اين كدو برام بنويسين. ممنون ميشم
شرمنده من سرم خیلی شلوغه ایامه امتحانات دیگه.cry::
کار زیاد ی نداره خودتون میتونید.:wink:

ERSA
05-01-2014, 22:23
ممكنه شما اين كدو برام بنويسين. ممنون ميشم


فایل هگزشم گذاشتم یه چک بکن.8تا اولی از اولین LED میاد تا آخری و 8 تا دومی از آخرین LED میاد تا اولی.به هم که رسیدن دوباره بر میگرده...



#include <avr/io.h>
#ifndef F_CPU
#define F_CPU 1000000
#endif
#include <util/delay.h>


int main(void)
{
int c;
int d;
DDRD=0xff;
DDRC=0xff;
loop :
d=0x80;
c=0x01;
for(int i=0;i<7;i++){

PORTC=c;
PORTD=d;
c=c<<1;
d=d>>1;

_delay_ms(500);
}

for(int j=0;j<7;j++){



PORTC=c;
PORTD=d;
d=d<<1;
c=c>>1;
_delay_ms(500);
}

goto loop;



}