Thông báo

Collapse
No announcement yet.

[UART] Cho mình hỏi ngắt UART trong 16F887?

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • [UART] Cho mình hỏi ngắt UART trong 16F887?

    cho mình hỏi mình làm truyền nhận uart thì dc rùi lúc đó thì chưa có ngắt. Khi mình đưa ngắt vào thì ko chạy dc. Bạn nào biết sai ở đâu trong code mình chỉ giúp mình nhé. Cảm ơn nhiều nhiều.
    #include "C:\Documents and Settings\trungchanh108\My Documents\chuong trinh viet cho pic\ngatuart\main.h"
    #include <stdio.h>
    #use delay(clock=12000000)

    #int_RDA
    void RDA_isr(void)
    {
    int8 k;
    k=getc();
    putc(k);
    }



    void main()
    {

    setup_adc_ports(NO_ANALOGS|VSS_VDD);
    setup_adc(ADC_OFF);
    setup_spi(SPI_SS_DISABLED);
    setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
    setup_timer_1(T1_DISABLED);
    setup_timer_2(T2_DISABLED,0,1);
    setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard

    enable_interrupts(INT_RDA);
    enable_interrupts(GLOBAL);
    //Setup_Oscillator parameter not selected from Intr Oscillator Config tab

    // TODO: USER CODE!!
    delay_ms(100);
    printf("chanh");
    delay_ms(100);
    while(true)
    {

    }

    }

  • #2
    Nguyên văn bởi trch Xem bài viết
    cho mình hỏi mình làm truyền nhận uart thì dc rùi lúc đó thì chưa có ngắt. Khi mình đưa ngắt vào thì ko chạy dc. Bạn nào biết sai ở đâu trong code mình chỉ giúp mình nhé. Cảm ơn nhiều nhiều.
    Bạn cần thêm chỉ dẫn
    Code:
    #use rs232(baud=19200, UART1)
    Sau
    Code:
    #use delay(clock=12000000)


    Comment


    • #3
      cảm ơn bạn nhiều nha. mò mò từ sáng h. mới tiếp xúc với con Pic nen gặp rất nhiều khó khăn.

      Comment


      • #4
        chào các bạn mình gặp một vấn đề như thế này. Mình ko muốn dùng lệnh
        "output_portd(0x00)" thì mình đã dùng định nghĩa PORTD và thay bằng lệnh
        PORTD=0x00; nhưng nó ko thực hiện được. Mình dùng chương trình chớp tẳt led bình thường nhưng ko dc. bạn nao đã làm rồi chỉ cho mình với. đây là source code của mình:
        file.c
        #include "C:\Documents and Settings\trungchanh108\My Documents\chuong trinh viet cho pic\ngat timer\main.h"
        void main()
        {

        setup_adc_ports(NO_ANALOGS|VSS_VDD);
        setup_adc(ADC_OFF);
        setup_spi(SPI_SS_DISABLED);
        setup_timer_1(T1_DISABLED);
        setup_timer_2(T2_DISABLED,0,1);
        setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard
        //Setup_Oscillator parameter not selected from Intr Oscillator Config tab

        // TODO: USER CODE!!
        while(true)
        {
        PORTD=0xFF;
        delay_ms(1000);
        PORTD=0x00;
        delay_ms(1000);
        }
        }
        file.h
        #include <16F887.h>
        #device adc=8
        #FUSES NOWDT, HS, PUT, MCLR, NOPROTECT, NOCPD, NOBROWNOUT, IESO, FCMEN, NOLVP, NODEBUG, NOWRT, BORV40
        #byte PORTD=0x08
        #use delay(clock=12000000)

        Comment


        • #5
          Đã trả lời vấn đề bạn hỏi trong mục tương tự câu hỏi của bạn. Qua đó xem nhé.
          Ethernet-RS232, PIC Webserver, RFID Reader
          CallerID, Cảnh báo BTS, ...
          0988006696
          linhnc308@gmail.com
          http://linhnc308.blogspot.com

          Comment

          Về tác giả

          Collapse

          trch Tìm hiểu thêm về trch

          Bài viết mới nhất

          Collapse

          Đang tải...
          X