اطلاعیه

Collapse
No announcement yet.

برنامه avr

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

    برنامه avr

    با عرض سلام و خسته نباشید.
    ببخشید بنده میخواستم یک شمارنده با avr بسازم .یک برنامه نوشتم .تو این برنامه led اول روشن میشه ولی led دوم روشن نمیشه.میخواستم ببینم هیچ کدام از دوستان متوجه اشکال برنامه میشوند یا نه؟
    ممنون.
    void main (void){
    static int c=0;
    DDRA.0=0;
    DDRB=1;
    while(1){
    if (c==0)
    {
    PORTB=0b00000001;
    c++;
    delay_ms(100);
    break;
    if(c==1)
    {
    PORTB=0b00000010;
    delay_ms(100);
    break;
    البته خطایی نداره فقط تو شبیه ساز پروتیوس عمل نمیکنه.یعنی led اول روشن میشه ولی دومی نه.
    باز هم ممنون.

    #2
    پاسخ : برنامه avr

    نوشته اصلی توسط saati.sms نمایش پست ها
    با عرض سلام و خسته نباشید.
    ببخشید بنده میخواستم یک شمارنده با avr بسازم .یک برنامه نوشتم .تو این برنامه led اول روشن میشه ولی led دوم روشن نمیشه.میخواستم ببینم هیچ کدام از دوستان متوجه اشکال برنامه میشوند یا نه؟
    ممنون.
    void main (void){
    static int c=0;
    DDRA.0=0;
    DDRB=1;
    while(1){
    if (c==0)
    {
    PORTB=0b00000001;
    c++;
    delay_ms(100);
    break;
    if(c==1)
    {
    PORTB=0b00000010;
    delay_ms(100);
    break;
    البته خطایی نداره فقط تو شبیه ساز پروتیوس عمل نمیکنه.یعنی led اول روشن میشه ولی دومی نه.
    باز هم ممنون.
    سلام
    ایراد کاملا واضحه! شما باید رجیستر DDRB رو به شکل زیر مقدار دهی میکردید:

    DDRB = 0b00000011;

    اما اون چه شما نوشتید فقط پین صفر از پورت B رو خروجی میکنه و پین 1 اصلا خروجی نمیشه! پس طبیعیه که LED روشن نشه!

    دیدگاه


      #3
      پاسخ : برنامه avr

      مهندس دمت گرم.
      من تازه کارم فکر اینجا رو نمیکردم.
      بازهم خیلی ممنون.

      دیدگاه

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