امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
ارسال میکرو به pc
نویسنده پیام
parniaan آفلاین
تازه وارد

ارسال‌ها: 9
موضوع‌ها: 1
تاریخ عضویت: دى ۱۳۹۰

تشکرها : 0
( 13 تشکر در 4 ارسال )
ارسال: #1
ارسال میکرو به pc
کسی هست بتونه به منه بدبخت کمک کنه؟؟؟
من یه برنامه دارم که دمای دو نقطه را با سنسور lm35 و با adc اندازه گرفته و به pc میفرسته
برنامه روی پروتئوس درست کار میکنه
حتی با virtual terminal پروتئوسم چک کردم داده هارو درست میفرسته به پی سی
اما برنامه سمت پی سی فقط عدد 0 به من نشون میده
مشکل از کجاسـت؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
این برنامه سمت میکرو:
کد:
#include <stdio.h>
#include <mega16.h>
#include <delay.h>
#include <lcd.h>
#define xtal 8000000
#asm
    .equ __lcd_port=0x18 //portb
#endasm
#define ADC_VREF_TYPE 0xC0
float t0,t1;
unsigned int read_adc(unsigned char adc_input){
    float temp1,temp2,var1,var2;
    ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
    delay_us(10);
    ADCSRA|=0x40;
    while ((ADCSRA & 0x10)==0);
    ADCSRA|=0x10;
    var1=ADCW/255;
    temp1=((var1*2.56)/1023)*100;
    var2=ADCW%255;
    temp2=((var2*2.56)/1023)*100;
    return temp1,temp2;
}
void main(void){
    char buffer1[16],buffer2[16];
    lcd_init(16);
    SFIOR=0x00;
    ADMUX=ADC_VREF_TYPE & 0xff;
    ADCSRA=0x86;
    UCSRA=0x00;
    UCSRB=0x08;
    UCSRC=0x86;
    UBRRH=0x00;
    UBRRL=0x33;
    while (1){
        t0=read_adc(0);
        t1=read_adc(1);
        lcd_clear();
        sprintf(buffer1,"T0=%f\n",t0);
        lcd_puts(buffer1);
        sprintf(buffer2,"T1=%f",t1);
        lcd_puts(buffer2);
        printf("%s%s",buffer1,buffer2);
        delay_ms(100);
    };
}

اینم برنامه سمت pc :
کد:
[align=left]Option Explicit
Option Base 1
Dim buffer As Variant, b As Variant
Private Sub Form_Load()
MSComm1.Settings = "9600,n,8,1"
MSComm1.RThreshold = 1
MSComm1.SThreshold = 1
MSComm1.InputLen = 1
MSComm1.CommPort = 6
MSComm1.PortOpen = True
End Sub
Private Sub Form_Unload(Cancel As Integer)
MSComm1.PortOpen = False
End Sub
Private Sub MSComm1_OnComm()
If MSComm1.CommEvent = comEvReceive Then
buffer = MSComm1.Input
Text1.Text = Asc(buffer)
End If
End Sub[/align]

اینم پروتئوس :
http://www.upload.iran-forum.ir/download32571.html
(آخرین ویرایش در این ارسال: ۱۹-دى-۱۳۹۰, ۱۷:۵۰:۳۸، توسط parniaan.)
۱۹-دى-۱۳۹۰, ۱۷:۴۴:۳۶
ارسال‌ها
پاسخ
parniaan آفلاین
تازه وارد

ارسال‌ها: 9
موضوع‌ها: 1
تاریخ عضویت: دى ۱۳۹۰

تشکرها : 0
( 13 تشکر در 4 ارسال )
ارسال: #2
RE: ارسال میکرو به pc
چرا هیچکس جواب نمیدهههههههههههههههههههههههه؟؟؟؟؟؟؟؟
۱۹-دى-۱۳۹۰, ۱۹:۴۷:۳۲
ارسال‌ها
پاسخ
Pardazesh-Gar آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 457
موضوع‌ها: 6
تاریخ عضویت: اردیبهشت ۱۳۸۶

تشکرها : 330
( 630 تشکر در 286 ارسال )
ارسال: #3
RE: ارسال میکرو به pc
برنامه کامپیوتر مرتب عدد صفر رو دریافت می کنه؟ یا اصلا هیچی دریافت نمی کنه؟

---------------------------------------------------------------------------
تیـــز دوم، تیز دوم، تا به سواران برسم
--------------------------------------
۲۰-دى-۱۳۹۰, ۰۰:۳۹:۰۲
ارسال‌ها
پاسخ
apcog آفلاین
در حال پیشرفت
***

ارسال‌ها: 315
موضوع‌ها: 40
تاریخ عضویت: شهریور ۱۳۹۰

تشکرها : 61
( 280 تشکر در 167 ارسال )
ارسال: #4
RE: ارسال میکرو به pc
فکر کنم با کلاک 8 مگاهرتز و باند ریت 9600 به مشکل بر میخوره.توی پروتئوس ارور ها رو در نظر نمیگیره.
کلاک رو بکن 1 مگاهرتز و باند ریت رو بزار 110.سرعتش اونقدری هست که حس نشه ولی احتمالا مشکل حل میشه.
اگه این کار رو کردی حتما توی دیواس منیجر هم تغیرات رو انجام بده و توی ترمینال هم همینطور.
۲۰-دى-۱۳۹۰, ۱۲:۵۹:۵۵
ارسال‌ها
پاسخ
parniaan آفلاین
تازه وارد

ارسال‌ها: 9
موضوع‌ها: 1
تاریخ عضویت: دى ۱۳۹۰

تشکرها : 0
( 13 تشکر در 4 ارسال )
ارسال: #5
RE: ارسال میکرو به pc
من کاریکه گفتید کردم
اما بازم عدد صفر نشون میده همه تنظیماتی که گفتید انجام دادم
اما فقط عدد 0 نشون میده
حالا باید چه کنم؟ Confused
(آخرین ویرایش در این ارسال: ۲۲-دى-۱۳۹۰, ۲۳:۱۷:۰۵، توسط parniaan.)
۲۲-دى-۱۳۹۰, ۲۳:۱۴:۰۷
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #6
RE: ارسال میکرو به pc
سلام.

من با C# قبلا همچين كاري كردم ...
اگر اشتباه نكنم با baud 19200 هم بود ، با بيشترش هم مي شه جواب گرفت ...
با VB6 كار نكردم ، اما ...
طبق اين كد زير :
Text1.Text = Asc(buffer)

شما داري مقداري رو كه دريافت كردي به فرم ASCII توي textBox مي ريزي ...
به نظرم اين كار اشتباه باشه ... ، تاجايي كه من مي دونم textBox مقادير نوشته شده درش string هستن و براي نوشتن به textBox هم بايد داده ها رو به string تبديل كني ...
حداقل تو C# كه اينطوريه ...
يه امتحاني كن ،‌شايد اشكال از همين باشه ... ، البته كل برنامه رو چك نكردم و اتفاقي چشم به اون كد كه گفتم افتاد ...
براي امتحان كردن چيزي كه گفتم هم تو خود VB راحت مي شه تستش كرد و لازم نيست حتما ارتباطي با ميكرو برقرار كني ...
به هر حال هر جور مي توني امتحانش كن ...

موفق باشي.
يا علي.

۲۲-دى-۱۳۹۰, ۲۳:۳۰:۲۸
وب سایت ارسال‌ها
پاسخ
parniaan آفلاین
تازه وارد

ارسال‌ها: 9
موضوع‌ها: 1
تاریخ عضویت: دى ۱۳۹۰

تشکرها : 0
( 13 تشکر در 4 ارسال )
ارسال: #7
RE: ارسال میکرو به pc
خوب من داده ایی که دریافت میکنم عدد هست
به فرم اسکی کردم که تبدیل به رشته بشه و بعد توی text نشون بده
راستش من خودمم vb زیاد بلد نیستم
اما دوستامم برای پروژه هاشون توی برنامه سمت pc دقیقا همینکارو انجام دادن چون عددی که دریافت میکنه از میکرو که رشته نیست پس باید یه جوری تبدیلش کنه به رشته بعد نشون بده درسته؟
من با باد ریت های مختلف انجام دادم بازم همین مشکلو داره
توی هایپر ترمینالم تست کردم داده رو میفرسته اما نمیدونم چرا سمت pc مدام عدد 0 نشون میده!!!
حتی ارتباط FT232 هم چراغ RXش 10 بار روشن میشه یعنی معلومه که داده رو میفرسته اما روی پی سی نمیدونم چرا 0 نشون میده به هزار نفر هم نشون دادم گفتن برنامه میکرو هیچ مشکلی نداره شاید ایراد از برد باشه یا از برنامه سمت pc اما روی دو تا برد دیگه هم بستم امتحان کردم همین مشکلو داره!
یعنی یه عددی نشون میده بعدش سریع تبدیل میکنه به 0 انقدر سریع اینکارو میکنه که من اصلا نمیتونم بخونم اون عدد اولیه چنده! یعنی اصلا نمیبینمش فورا 0 میشه!
۲۵-دى-۱۳۹۰, ۱۳:۳۵:۱۷
ارسال‌ها
پاسخ
pouya75 آفلاین
تازه وارد

ارسال‌ها: 6
موضوع‌ها: 1
تاریخ عضویت: دى ۱۳۸۹

تشکرها : 0
( 4 تشکر در 3 ارسال )
ارسال: #8
RE: ارسال میکرو به pc
دوست عزیز شما با HyperTerminal تست کنید.
(آخرین ویرایش در این ارسال: ۲۵-دى-۱۳۹۰, ۱۸:۰۵:۲۳، توسط pouya75.)
۲۵-دى-۱۳۹۰, ۱۷:۵۸:۵۲
ارسال‌ها
پاسخ
parniaan آفلاین
تازه وارد

ارسال‌ها: 9
موضوع‌ها: 1
تاریخ عضویت: دى ۱۳۹۰

تشکرها : 0
( 13 تشکر در 4 ارسال )
ارسال: #9
RE: ارسال میکرو به pc
(۲۵-دى-۱۳۹۰, ۱۷:۵۸:۵۲)pouya75 نوشته است: دوست عزیز شما با HyperTerminal تست کنید.
دوست عزیز ممنون از پاسختون
اما اگه نظر قبلی منو باد قت خونده باشید نوشتم که با هایپر ترمینال هم تست کردم درست بود و داده رو میفرستاد!
هم با ویرژوال ترمینال پروتئوس تست کردم ، هم با هایپر ترمینال هردو درست کار میکرد
من به خیلیها این پروژه رو نشون دادم حتی به استادم نشون دادم اونم نفهمید ایرادش کجاست فقط میگه باید پروژت جواب بده تا کامل درست نشه نمرتو نمیدم....... کمک کنید لطفا
ای خدآآآآآآآآآآآآآآآآآآآآآآآآآآآآآآآآآآآآآآآآآآآ
۲۵-دى-۱۳۹۰, ۲۱:۲۳:۳۳
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #10
RE: ارسال میکرو به pc
آهان ...

خوب زودتر مي گفتيد.
براي ASCii هنوز سر حرفم هستم !! ، Ascii كد هاي 3 رقميه ... ، مگر اينكه اين VB اتوماتيك تبديلش كنه به String
به هر حال با توجه به چيزي كه گفتيد ،‌داده ها روي هم Over write مي شن ... !
مشكل برنامه ي سمت PC هست ،‌100%
توي C# من اين كار رو مي كنم ، ببين توي VB جواب مي دهه يا نه ... ( البته از تابع هاي .net استفاده مي كنم نه Ascii !! )

Text1.Text += Asc(buffer)
اون + قبل از مساوي ، باعث مي شه اعداد پشت سر هم به نمايش در بيان و روي هم ديگه نوشته نشن ... !

موفق باشي.
يا علي.

۲۶-دى-۱۳۹۰, ۰۰:۴۸:۲۸
وب سایت ارسال‌ها
پاسخ
pouya75 آفلاین
تازه وارد

ارسال‌ها: 6
موضوع‌ها: 1
تاریخ عضویت: دى ۱۳۸۹

تشکرها : 0
( 4 تشکر در 3 ارسال )
ارسال: #11
RE: ارسال میکرو به pc
InputLen و RThreshold برابر تعداد کاراکتر ارسالی در هر دوره بگذارید و بعد از هر دریافت پورت را بسته و مجددا باز کنید و متن دریافتی را مستقیما در Text Box بریزید.Question
نکته خاص دیگری هم یادم نمی آید.
مشکلی بود در خدمتیم.
در ضمن من از این روش جواب گرفتم.Question
۲۶-دى-۱۳۹۰, ۰۰:۴۸:۵۶
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  مشکل در ارسال ودریافت داده باینری Index1 2 2,263 ۰۱-اردیبهشت-۱۳۹۷, ۱۱:۵۸:۵۸
آخرین ارسال: Index1
  ارسال و دریافت دیتا بین ماژول GSM وسایت hfhossein 1 2,286 ۲۶-آبان-۱۳۹۶, ۱۴:۱۳:۲۰
آخرین ارسال: hadikh73
  تست میکرو saber.k 10 14,048 ۰۹-شهریور-۱۳۹۵, ۰۲:۰۹:۲۷
آخرین ارسال: yadulla fazel
  ارسال متن از میکرو به وی بی student-p 19 19,615 ۱۲-اسفند-۱۳۹۴, ۲۱:۵۲:۰۲
آخرین ارسال: omid_phoenix
  ارسال و دريافت اطلاعات از پايه هاي AVR-ATMEGA32 mahdi321 1 2,470 ۱۹-مهر-۱۳۹۴, ۲۰:۵۳:۰۶
آخرین ارسال: milad15m
  مشکل در ارسال مقدار دو ولوم از طریق HMT-HMR starlit 6 4,105 ۰۴-مهر-۱۳۹۴, ۱۹:۱۰:۲۳
آخرین ارسال: starlit
  کد کردن دیتا برای ارسال بیسیم؟ cortex-m3 3 3,128 ۲۴-خرداد-۱۳۹۴, ۰۹:۲۲:۵۹
آخرین ارسال: student-p
  [پروژه] ارسال اس ام اس و تماس با gsm a.mehran 24 12,160 ۲۵-آذر-۱۳۹۳, ۲۲:۳۹:۴۲
آخرین ارسال: Ambassador
  ارسال کاراکترهای فارسی با پورت سریال 38505512 2 4,254 ۳۰-آبان-۱۳۹۳, ۱۲:۴۳:۰۰
آخرین ارسال: pooramin
  [سوال] مشکل با ارسال علامت درجه با sms svb93 1 2,142 ۱۷-مهر-۱۳۹۳, ۱۶:۲۹:۰۳
آخرین ارسال: aKaReZa75

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 4 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS