NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 2668 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 5 از 5

موضوع: مشکل ارتباط سریال با کامپیوتر با کامپایلر ccs)(خیلییییییییییییی به کمکتون نیاز دارم)

  1. #1
    عضو جدید
    تاریخ عضویت
    Mar 2016
    نوشته ها
    7
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض مشکل ارتباط سریال با کامپیوتر با کامپایلر ccs)(خیلییییییییییییی به کمکتون نیاز دارم)

    با سلام و عرض ادب و احترام خدمت مهندسین عزیز
    یه مشکلی در ارتباط سریال با pc در کامپایلر ccs برام پیش اومده که خیلی ضروریه برام و ازتون کمک میخوام!
    من برنامه زیر رو نوشتم که از طریق A/D اطلاعات رو از پورت A بخونه و عملیات ریاضی روش انجام بده و اون رو هر 10ثانیه یک بار به pc ارسال کنه.
    مشکلاتی که هست اینه اطلاعاتی که من میفرستم اصلا تو pc درست نشان داده نمیشه و چیزهای بی ربط نشون میده که عدد هم نیستن!اعداد فرستاده شده هم اعشاری 3 رقمی با یک رقم اعشاری هستش.
    و تو راه اندازی interrupt هم مشکل دارم!
    خیلییییییییییییییییی به کمکتون نیاز دارم!ممنون میشم کمکم کنید!
    برنامه ای که نوشتم:
    #include <18f4550.h>
    #device ADC=10
    #use delay(clock=1000000)
    #use i2c(master,sda=pin_b0,scl=pin_b1)
    #fuses hs,nowdt
    #int_timer0
    #include <math.h>
    #define use_portd_lcd TRUE
    #include <lcd.c>


    double m1,m2;
    int s,m,h,d,mon,y;
    float ve,vin,voute,hh,I;
    long t0;




    void timer0_isr()
    {
    set_tris_d(0x00);


    set_timer0(0);
    clear_interrupt(int_timer0);
    putc(h);
    }


    void main()
    {
    set_tris_a(0xff);
    setup_timer_0( RTCC_INTERNAL | RTCC_DIV_256);
    interrupt_active(INT_TIMER0);
    set_timer0(0);
    setup_adc_ports(AN0_TO_AN1);
    setup_adc(ADC_CLOCK_INTERNAL);

    i2c_start();
    i2c_write(0xd0); //neveshtan
    i2c_write(0);
    i2c_write(0);// sec
    i2c_write(0b00100100);// min
    i2c_write(0b00000011);//h
    i2c_stop();

    i2c_start();
    i2c_write(0xd0); // set the initial value of min , h,etc
    i2c_write(4);
    i2c_write(0b00100111);//date
    i2c_write(0b00010001);// mon
    i2c_write(0b00010110);//year
    i2c_stop();

    lcd_init();

    while(true) {
    delay_ms(10);
    set_adc_channel(0);
    m1=read_adc();
    delay_ms(100);
    set_adc_channel(1);
    m2=read_adc();
    delay_ms(10);
    ve=(5*m1)/1023; //output voltage of Encoder
    voute=(ve*10)/0.52;
    delay_ms(10);
    vin=(5*m2)/1023;
    I=vin/0.2 ;
    hh=35*I-100 ;

    delay_ms(10);
    i2c_start();
    i2c_write(0xd0); //hardware address and R/Wnot=0
    i2c_write(0); //access seconds register
    i2c_start();
    i2c_write(0xd1); //hardware address and R/Wnot=1
    s=i2c_read(1); //read second
    m=i2c_read(1); //read minute
    h=i2c_read(0); //read hour
    i2c_start();
    i2c_write(0xd0);
    i2c_write(4);
    i2c_start();
    i2c_write(0xd1);
    d=i2c_read(1); //read date
    mon=i2c_read(1); //read month
    y=i2c_read(0); //read year
    i2c_stop();
    delay_ms(10);
    t0=get_timer0();
    printf(lcd_putc,"\f%x:%x:%x\n%x:%x:%x",h,m,s,y,mon ,d);

    //lcd_gotoxy(9,1);

    //printf(LCD_PUTC, "h=%4x",t0);
    lcd_gotoxy(9,2);
    printf(LCD_PUTC, "V=%3.2f",voute);
    delay_ms(100);

    }
    }

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    کاربر علاقه مند
    تاریخ عضویت
    Jan 2012
    نام
    Asa
    نوشته ها
    90
    تشکر
    148
    تشکر شده 30 بار در 23 پست

    پیش فرض

    وقت بخیر

    متاسفانه من با این چیپ و برنامه کار نمیکنم ولی تنظیمات سریال توی برنامه شما مشخص نیست !! شما اگر اسیلاتور چیپ رو مناسب انتخاب کنید و تنظیمات سرعت سریال رو درست انجام بدید براحتی میتونید اطلاعات رو به کامپیوتر ارسال یا دریافت کنید ولی دقت کنید اگر برای تست از برنامه ترمینال ویندوز استفاده میکنید توی ترمینال کد اسکی دیده میشه مگر ترمینال رو بشه برای نمایش هگز تنظیم کرد .

  4. #3
    کاربر فعال
    تاریخ عضویت
    May 2010
    نوشته ها
    119
    تشکر
    361
    تشکر شده 85 بار در 46 پست

    پیش فرض

    سلام
    دوست عزیزمون taktrashe درست میگن تنظیمات سریال در برنامه شما نیست
    به همین دلیل چون buad rate تنظیم نیست 100درصد باید کارکترهای عجیب غریب دریافت کنید

  5. تشکرها از این نوشته :


  6. #4
    عضو جدید
    تاریخ عضویت
    Mar 2016
    نوشته ها
    7
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    با سلام و احترام و سپاس فراوان بابت راهنماییتان.
    نه تنظیمات rs232 رو هم انجام داده بودم و تو برنامه یادم رفته بود که براتون بفرستم!
    الان یه برنامه سادو رو نوشتم و میخوام تو pc ، عدد x رو برام نشون بده ولی نشون نمیده
    #include <18f4550.h>
    #use delay(clock=11059200)
    #use rs232(baud=9600,xmit=PIN_C6,RCV=PIN_C7)
    #fuses hs,nowdt
    float x=624.2;
    int str[20];
    void main(){
    while (true){
    sprintf(str,"%f",x);
    puts(str);
    delay_ms(1000);
    }

  7. #5
    کاربر فعال
    تاریخ عضویت
    May 2010
    نوشته ها
    119
    تشکر
    361
    تشکر شده 85 بار در 46 پست

    پیش فرض

    سلام

    خب شما چرا ارایه str از نوع int انتخاب کردی باید char کنی دیگه
    int str[20];

  8. تشکرها از این نوشته :


موضوعات مشابه

  1. توقف تولید ماژول sim900
    توسط esisafa در انجمن ماژول ها و دستگاه های مخابراتی
    پاسخ: 8
    آخرين نوشته: 04-06-2016, 12:49
  2. خرید مینی کامپیوترcx-w8 کویر کامپیوتر
    توسط engineer1 در انجمن مباحث کار و کاریابی/تبلیغات/بازارچه
    پاسخ: 0
    آخرين نوشته: 13-10-2015, 14:11
  3. شارژر اتوماتیک باتری اتومبیل
    توسط Ma3ood در انجمن الکترونیک
    پاسخ: 0
    آخرين نوشته: 23-09-2013, 12:46
  4. فایل کنترل دما با USB کامپیوترتونو
    توسط MisaghSepehr در انجمن AVR
    پاسخ: 4
    آخرين نوشته: 16-07-2007, 22:46

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •