اطلاعیه

Collapse
No announcement yet.

atmega128 و دو تا USART و codevision

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

    atmega128 و دو تا USART و codevision

    همونطور که میدونید atmega128 دو تا USART داره. می خواستم ببینم چطور میشه توو برنامه وقتی دوتاشونم فعالن اطلاعات ارسالی رو با هر کدوم که خواستیم بفرستیم یعنی دوتاشون مستقل از هم ولی همزمان کار کنن.
    توو کدویژن دستوری هست که یکی از اینا رو انتخاب کنه و اطلاعات رو با اون ارسال کنه؟ :question:
    اگر ندانی کجا میروی هر راهی تو را باخود خواهد برد.

    #2
    پاسخ : atmega128 و دو تا USART و codevision

    سلام ourman جان
    به نظر من باید یه پروتکل تعریف کنی که که این دوتا رو با یه تعریف خاص از هم جدا کنه . بعد دوتاشون که همزمان دارن کار می کنن می تونی بنا بر اون تعریفت یکیشون یا حتی دوتا شون رو برای در یافت یا هر کار دیگه ای انتخاب کنی یه چیزی تو مایه های اینکه مثلا دو تا slave داشته باشی بعد بخوای یکیشون در زمانی که می خوای فعال نباشه در واقع اینجا Master می شی خودت.
    همین به ذهنم رسید شایدم نتونه کمک کنه اما به هر حال . :nerd:
    دوستان! مدتی کمتر به سایت میام ..

    دیدگاه


      #3
      پاسخ : atmega128 و دو تا USART و codevision

      سلام
      اگه درست یادم باشه (آخه قضیه مال 5/1 سال پیشه)شما از ویزارد استفاده کن
      برای هر دو تا هم اینتراپت رو فعال کن
      حالا میبینی که برای خوندن دو تابع و برای نوشتن هم دو تابع در برنامه به صورت اتوماتیک درست شده
      دقیقا یادم نیست ولی فکر کنم این بود
      ()getchar
      ()getchar1
      ()putchar
      ()putchar1
      در ضمن بهترین منبع خود Manual codevision هستش
      لینکش اینه
      http://instruct1.cit.cornell.edu/Courses/ee476/codevisionC/cvavrman.pdf
      :mrgreen:
      http://imenbazar.com

      دیدگاه


        #4
        پاسخ : atmega128 و دو تا USART و codevision

        من توو برنامم از دستورات printf و scanf استفاده می کنم و اونطوری که توو manual دیدم نوشته بود که این دستورات فقط برای USART0 تعریف شدن(توو تابع stdio.h ) انگار مجبورم فقط از putchar و getchar استفاده کنم که کارمو زیاد میکنه.
        اگر ندانی کجا میروی هر راهی تو را باخود خواهد برد.

        دیدگاه


          #5
          پاسخ : atmega128 و دو تا USART و codevision

          باید stdout رو بینشون سوییچ کنی .
          فتو بلاگ من
          کاردستی ها :
          روبات شطرنج باز ( یادگار دوران جوانی )
          فارسی نویسی مستقیم در نمایشگر های گرافیکی
          کتابچه خود آموز زبان توصیف سخت افزار Verilog

          دیدگاه


            #6
            پاسخ : atmega128 و دو تا USART و codevision

            باید stdout رو بینشون سوییچ کنی .
            میشه یه کم بیشتر توضیح بدین. راستی stdout همون stdio هستش یا یه تابع جدیده؟
            اگر ندانی کجا میروی هر راهی تو را باخود خواهد برد.

            دیدگاه


              #7
              پاسخ : atmega128 و دو تا USART و codevision

              stdout یک پوینتر به تابع خروجی هست ، در فایل هدر stdio

              stdout رو putc یا مشابه تعریف میکنند و هر وقت که شما از PRINTF استفاده میکنید ، کرکتر ها دونه دونه به Putc فرستاده میشن ، حالا اگر 2 تابع putc داشته باشیم، با سوییچ بینشون میتونی خروجی printf رو عوض کنید .
              فتو بلاگ من
              کاردستی ها :
              روبات شطرنج باز ( یادگار دوران جوانی )
              فارسی نویسی مستقیم در نمایشگر های گرافیکی
              کتابچه خود آموز زبان توصیف سخت افزار Verilog

              دیدگاه


                #8
                پاسخ : atmega128 و دو تا USART و codevision

                میتونی هم خودت با UDR0 و UDR1 بخونی و بنویسی.
                فقط اینتراپتی کن که هر وقت دیتا میاد داشته باشی
                خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

                دیدگاه


                  #9
                  پاسخ : atmega128 و دو تا USART و codevision

                  میتونی هم خودت با UDR0 و UDR1 بخونی و بنویسی.
                  فقط اینتراپتی کن که هر وقت دیتا میاد داشته باشی
                  در این مورد روش بابا برقی که راحتتره!
                  stdout رو putc یا مشابه تعریف میکنند و هر وقت که شما از PRINTF استفاده میکنید ، کرکتر ها دونه دونه به Putc فرستاده میشن ، حالا اگر 2 تابع putc داشته باشیم، با سوییچ بینشون میتونی خروجی printf رو عوض کنید .
                  یعنی کافیه که وقتی میخوام از 0 به 1 سوئیچ کنم دستور stdout رو بنویسم یا شکل دستور فرق میکنه؟ مثلا: stdout();
                  یا : stdout(1); ?
                  اگر ندانی کجا میروی هر راهی تو را باخود خواهد برد.

                  دیدگاه


                    #10
                    پاسخ : atmega128 و دو تا USART و codevision

                    stdout=PUTC2
                    فتو بلاگ من
                    کاردستی ها :
                    روبات شطرنج باز ( یادگار دوران جوانی )
                    فارسی نویسی مستقیم در نمایشگر های گرافیکی
                    کتابچه خود آموز زبان توصیف سخت افزار Verilog

                    دیدگاه

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