اطلاعیه

Collapse
No announcement yet.

pic

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

    pic

    سلام من یه سری داده دارم میخوام بریزمشون روی میکرو و بعد به صورت سیگنال خارجشون کنم تعدادشونم زیاده میکرومم pic 16f877a هستش ولی نمیدونم چجوری این کارو انجام بدم. برای دیجیتال کردنشون باید چیکار کنم؟
    لطفا اگه کسی میتونه کمکم کنه
    اینم یه سری از داده هامه

    Elapsed time ECG
    hh:mm:ss.mmm (mV)
    0:00.000 -0.273
    0:00.004 -0.307
    0:00.008 -0.297
    0:00.012 -0.320
    0:00.016 -0.333
    0:00.020 -0.335
    0:00.024 -0.338
    0:00.028 -0.325
    0:00.032 -0.328
    0:00.036 -0.295
    0:00.040 -0.345
    0:00.044 -0.278
    0:00.048 -0.328
    0:00.052 -0.347
    0:00.056 -0.375
    0:00.060 -0.328
    0:00.064 -0.300
    0:00.068 -0.307
    0:00.072 -0.297
    0:00.076 -0.285
    0:00.080 -0.278
    0:00.084 -0.297
    0:00.088 -0.300
    0:00.092 -0.247
    0:00.096 -0.260
    0:00.100 -0.263

    #2
    پاسخ : pic

    سلام.
    ممکنه بیشتر توضیح بفرمایین؟
    این ولتاژها رو میخواین تولید کنین به مدت زمانی که نوشته شده؟
    منظورتون از:
    نوشته اصلی توسط vampiiire
    برای دیجیتال کردنشون باید چیکار کنم؟
    چیه؟
    این داده ها همواره ثابت هستن؟ یا نیاز به تغییر خواهند داشت؟

    دیدگاه


      #3
      پاسخ : pic

      کاش یه کم بیشتر توضیح میدادید . چون خیلی جای ابهام داره.
      بهرحال.
      پنج تا متغیر میشه.
      میلی ثانیه
      ثانیه
      دقیقه
      ساعت
      میلی ولت
      -----
      به ترتیب نوع متغیر هات میشه:
      unsigned int16
      unsigned int8
      unsigned int8
      unsigned int8
      float
      البته با توجه به اینکه شما به اعشارش احتیاج ندارید و همیشه متغیر رو کوچکتر از یک در نظر می گیرید . متغیر آخر که همون سیگنال ECG شما باشه رو می تونید همون unsigned int16 در نظر بگیرید( چون به احتمال قوی می خواید این رو به صورت نمودار تو یه نمایشگر در مرحله بعد نشون بدید و برای نمایشگر و برای برنامه نویسی شما اینجوری راحت تره)
      دوستان عزیزم تصمیم گرفتم تا یه مدت کمتر به تالار سر بزنم . اگر دیر جواب دادم ببخشید.

      دیدگاه


        #4
        پاسخ : pic

        نوشته اصلی توسط شاهرخ
        سلام.
        ممکنه بیشتر توضیح بفرمایین؟
        این ولتاژها رو میخواین تولید کنین به مدت زمانی که نوشته شده؟
        منظورتون از: چیه؟
        این داده ها همواره ثابت هستن؟ یا نیاز به تغییر خواهند داشت؟

        با زمان هاش کاری ندارم براشون delay تعریف می کنم مشکلم سر باینری کردن عددهامه. دستوری پیدا نکردم که دسیمالو به باینری تبدیل کنه چون می خوام lcd گرافیکی بزارم باید باینری باشن عددهامم در هر سیکل تکرار میشه حدودا در هر سیکل قلبی 250 تا عدد دارم. اگر هم بتونم راهی پیدا کنم که این همه عدد وارد نکنم خیلی خوب میشه چون باید این کار رو برای 3 بیماری تکرار کنم.

        دیدگاه


          #5
          پاسخ : pic

          بازم خیلی جای سوال هست.
          مثلا اینکه از چه برنامه و کامپایلری استفاده می کنید ؟ ( من یه مقدار ccs بلدم و در موارد دیگه نمی تونم کمک کنم )
          یا اینکه آیا این مقادیر رو می خواید از سنسور بخونید یا اینکه می خواید دستی وارد کنید؟
          ببینید عدد ها همگی به صورت باینری تو میکرو ذخیره میشن . ولی این ما هستیم که می گیم چه شکلی دیده بشن .
          بذارین واضح تر بگم و مثال بزنم:
          مثلا اگر شما بخواید سیگنال رو به وسیله یک سنسور بخونید کاری که انجام می دید اینه که یا دیتا رو به صورت ولتاژ می دید به ورودی آنالوگ می کرو یا به صورت ارتباط سریال عدد رو می فرستید به میکرو یا به صورت موازی. که راحت ترین و بهترین کار همون ولتاژه.
          بعد از اینکه ولتاژ وارد میکرو شد ، خود به خود تبدیل به عدد می شه و بعد شما اون رو با ضرب و تقسیم تبدیل می کنید به عددی که میلی ولت رو نشون میده ( این عدد با فرمت هگز هست ولی برای شما فرقی نمی کنه چون موقع نمایش دادن می تونید اون رو بوسیله نوع نمایش به صورت باینری ، دسیمال یا هرچی دوست دارید نشون بدید )
          مثلا در ccs که من باهاش کار می کنم اگر شما هر کدام از این دستورات را بزنید عدد شما به یک صورت نشون داده میشه:
          printf("%d",ECG_Voltage);
          printf("%u",ECG_Voltage);
          توضیحش هم اینجوریه:
          کد:
          c
           Character
           
          s
           String or character
           
          u
           Unsigned int
           
          d
           Signed int
           
          Lu
           Long unsigned int
           
          Ld
           Long signed int
           
          x
           Hex int (lower case)
           
          X
           Hex int (upper case)
           
          Lx
           Hex long int (lower case)
           
          LX
           Hex long int (upper case)
           
          f
           Float with truncated decimal
           
          g
           Float with rounded decimal
           
          e
           Float in exponential format
           
          w
           Unsigned int with decimal place inserted. Specify two numbers for n. The first is a total field width. The second is the desired number of decimal places.
          اگر هم می خواید نمودار بکشید دیگه نیازی به فرمت عدد ندارید و به x و y احتیاج دارید
          و y رو اگر همون ولتاژ الکتروکاردیوگراف در نظر بگیریم مهم نیست که چه فرمتی داشته باشه و حالت نسبی پیدا می کنه با مقادیر مینیمم و ماکزیمم . توضیح اینکه : مینیمم که همون صفر ولت باشه میشه پایین ترین حدی که شما در نمودارتون در نظر می گیرید و ماگزیمم ولتاژ هم میشه بالاترین نقطه نمودارتون و اعدادی که وارد میشن رو با این نسبت بسنجین و نسبت به این اعداد نمایش بدید :nerd:
          باز میگم سوال شما خیلی جای ابهام داره و اگر من بخوام تمام حدس هایی که میزنم رو توضیح بدم خیلی زیاد میشه.
          نکنه اصلا می خواید سیگنال رو بسازید و بدید بیرون؟!؟! چون delay فقط به همین درد می خوره؟؟!!؟!؟
          بهتره که سخت افزار و نرم افزاری که تا اینجا درست کردید رو بذارید و توضیح بیشتری بدید
          یا علی
          دوستان عزیزم تصمیم گرفتم تا یه مدت کمتر به تالار سر بزنم . اگر دیر جواب دادم ببخشید.

          دیدگاه


            #6
            پاسخ : pic

            برای برنامه نویسی از زبان بیسیک استفاده می کنم
            عددهامو نمیخوام از سنسور بخونم چون سیگنال ثبت شده ندارم میخوام خودم تو برنامه دستی وارد کنم. اگر سیگنالو از بیرون میدادم از دستور adc_read استفاده می کردم ولی الان برای اینکه بتونم عددهامو روی پورت خروجیم بریزم مثلا portB باید عددهامو باینری کنم مگر اینکه به گفته شما عددی که به صورت دسیمال وارد میکنم اگر به پورت خروجی بفرستم باینری ذخیره بشه که در این صورت فعلا مشکلم حل میشه

            دیدگاه


              #7
              پاسخ : pic

              نمیدونم این کار شما چه توجیهی داره؟ اما برای وارد کردن اینهمه عدد به صورت دستی باید از کیبرد استفاده کنین.یا از دوتا کلید up/down برای تنظیم عدد و یه کلید هم برای ارسال. یه راه دیگه هم اینه که این اعداد تو کامپیوتر باشن و به صورت سریال به میکرو ارسال بشه.

              دیدگاه


                #8
                پاسخ : pic

                نوشته اصلی توسط شاهرخ
                نمیدونم این کار شما چه توجیهی داره؟ اما برای وارد کردن اینهمه عدد به صورت دستی باید از کیبرد استفاده کنین.یا از دوتا کلید up/down برای تنظیم عدد و یه کلید هم برای ارسال. یه راه دیگه هم اینه که این اعداد تو کامپیوتر باشن و به صورت سریال به میکرو ارسال بشه.
                می خوام عددهامو در داخل برنامه وارد کنم نه اینکه به پایه آنالوگ میکرو عدد بدم بعد از هر عدد هم delay بذارم که با فاصله زمانی مشخصی بیرون بیان و این کار در هر سیکل تکرار شه

                دیدگاه


                  #9
                  پاسخ : pic

                  اون وقت این عددها تغییر نمیکنن؟
                  اگه آره،این فرمایش شما،یعنی شما میخواین با هربار تغییر اعداد، میکرو رو دوباره پروگرم کنین!

                  نوشته اصلی توسط vampiiire
                  می خوام عددهامو در داخل برنامه وارد کنم
                  ضمنا

                  نوشته اصلی توسط vampiiire
                  اگر هم بتونم راهی پیدا کنم که این همه عدد وارد نکنم خیلی خوب میشه چون باید این کار رو برای 3 بیماری تکرار کنم.
                  این عددها کجا هستن که شما نمیخواین دونه دونه وارد کنین؟

                  دیدگاه


                    #10
                    پاسخ : pic

                    نه عددها در هر سیکل دوباره تکرار میشن و میبرمشون داخل حلقه
                    ومنظورم هم از
                    اگر هم بتونم راهی پیدا کنم که این همه عدد وارد نکنم خیلی خوب میشه چون باید این کار رو برای 3 بیماری تکرار کنم.
                    اینه که میتونستم سیگنال ثبت شده گیر بیارم ولی حالا مهم نیست با همین اعداد کارمو شروع کردم

                    دیدگاه

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