Thông báo

Collapse
No announcement yet.

Đọc dữ liệu từ chân AVR

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

  • Đọc dữ liệu từ chân AVR

    AVR đọc chuỗi bản tin từ 1 port có dạng đây là bản tin đầu ra của module GPS )

    $GPVTG,,T,,M,,N,,K
    $GPZDA,154852,07,02,2007,-7,0
    $GPRMC,154852,V,2102.6103,N,10551.0025,E,0.0,0.0,0 70207,1,W*63
    $GPGLL,2102.6103,N,10551.0025,E,154853,V
    $GPGGA,154853,2102.6103,N,10551.0025,E,0,0,,35,M,-23

    câu hỏi của mình là :
    1> Hàm nào cho phép đọc liên tục từng bit ký tự nhận được từ chân của AVR

    ---> mình muốn đọc liên tục cho đến khi nhận được 1 ký tự mong muốn thì dừng lại

    2> Hàm nào cho phép lấy các ký tự đọc được từ chân đó ghép thành 1 chuỗi

    ---> mình muốn lưu các ký tự liên tiếp ( khoảng 30 ký tự ) ngay sau ký tự mình tìm thấy ở trên

    Mình dùng CodevisionC để viết code.


    Ai bít về vấn đề này chỉ bảo mình nhé.. thank mọi người
    |

  • #2
    Bạn hãy cho biết rõ chuẩn giao tiếp ở Module GPS là gì, serial hay parallel..? Giao thức truyền, nhận dữ liệu của GPS? Nếu có sơ đồ mạch cho phần giao tiếp này càng tốt. Khi đó mình hoặc các bạn khác mới có thể giúp bạn một cách chi tiết được.
    Câu hỏi thứ 1 của bạn chưa trả lời được vì thông tin ko đầy đủ (nếu là dữ liệu serial thì theo chuẩn nào UART, I2C, SPI..hay cái nào khác???)
    2. Để ghép các ký tự vào 1 chuỗi 30 ký tự thì bạn sử dụng biến con trỏ để lưu từng ký tự vào các ô nhớ liên tiếp nhau. Ký tự cuối cùng bạn thêm vào là '\n' là ký tự nhận diện kết thúc chuỗi. Nếu bạn lưu trong SRAM thì ví dụ muốn xuất ra màn hình LCD thi dùng lệnh lcd_puts(char *str);

    Mến!
    Last edited by zinix; 29-04-2009, 09:14.

    Comment


    • #3
      AVR đọc chuỗi bản tin từ 1 port có dạng đây là bản tin đầu ra của module GPS )

      $GPVTG,,T,,M,,N,,K
      $GPZDA,154852,07,02,2007,-7,0
      $GPRMC,154852,V,2102.6103,N,10551.0025,E,0.0,0.0,0 70207,1,W*63
      $GPGLL,2102.6103,N,10551.0025,E,154853,V
      $GPGGA,154853,2102.6103,N,10551.0025,E,0,0,,35,M,-23
      Bản tin ở đầu ra của module GPS thì chắc là chuẩn RS232 của cổng COM rồi, nhưng mà không biết giao thức truyền (cách quy định frame truyền dữ liệu) thì không biết được ý nghĩa các byte nó gửi về. Muốn biết thì phải có tài liệu của module GPS mới được.
      1> Hàm nào cho phép đọc liên tục từng bit ký tự nhận được từ chân của AVR

      ---> mình muốn đọc liên tục cho đến khi nhận được 1 ký tự mong muốn thì dừng lại
      Mỗi ký tự trong bảng mã ACSII được quy định bởi một byte, như vậy nếu bạn nhận và kiểm tra từng bít trên chân của VĐK thì bạn không thể kiểm tra được đúng kí tự mong muốn đâu. Có hai trường hợp:
      - Nếu bạn nhận dữ liệu nối tiếp từ một chân của VDK thì mỗi lần bạn nhận được 1 bit, vậy cứ sau 8 bit liên tiếp (1 byte) bạn lại kiểm tra một lần xem có phải ký tự mong muốn không, cho đến khi nhận được đúng thì thôi
      - Nếu bạn nhận dữ liệu song song từ một cổng, thì mỗi lần bạn nhận được 1 byte, vậy mỗi lần nhận một byte nào đó bạn sẽ kiểm tra xem nó có phải là ký tự mong muốn hay không, cho đến khi bạn nhận được đúng ký tự mong muốn thì thôi.
      2> Hàm nào cho phép lấy các ký tự đọc được từ chân đó ghép thành 1 chuỗi

      ---> mình muốn lưu các ký tự liên tiếp ( khoảng 30 ký tự ) ngay sau ký tự mình tìm thấy ở trên

      Mình dùng CodevisionC để viết code.
      Khi bạn kiểm tra thấy nhận đúng ký tự mong muốn rồi, thì bạn bắt đầu nhận các ký tự đó lưu vào bộ nhớ. Nếu dữ liệu bạn nhận từ cổng COM thì bắt đầu từ ký tự mong muốn, các lần ngắt nhận sau bạn copy byte nhận được vào một vùng nhớ liên tiếp cho đến hết 30 byte là xong.

      Một vài lời góp ý, mong các cao thủ chỉ giáo thêm cho

      Thân mến,
      For a better world

      Comment


      • #4
        thank mọi người nhé.thank Zinix và Toan.lv . Mình làm được rùi.
        |

        Comment

        Về tác giả

        Collapse

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

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

        Collapse

        • mèomướp
          Trả lời cho Sửa bộ nguồn DC 60V 45A
          bởi mèomướp
          Dạ hông dám làm thì chắc chắn sẽ mãi ko thể làm được đâu ạ. Nguồn xung dân dụng vài kw giờ rất nhìu ạ, sạc ô tô điện, máy hàn, lò vi sóng, âm ly... tùy chất lượng mà độ phức tạp sẽ khác nhau ạ. Và cái giá phải trả về kinh tế...
          Hôm qua, 13:11
        • tuyennhan
          Trả lời cho Sửa bộ nguồn DC 60V 45A
          bởi tuyennhan
          Sửa dạng này thì chuyên còn không dám chắc khộng cháy nổ với linh kiện bán ngoài chợ nói gì khộng chuyên .
          Hôm qua, 09:25
        • tuyennhan
          Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
          bởi tuyennhan
          Đúng rồi chọn mua theo tai . ca thì phải toàn dải nhạc thì chỉ cao và thấp thé nên loa ca thì nghe nhạc không hay và ngược lại .
          Muốn ca và nhạc đều hay thì phải dúng 2 giàn , còn nếu chỉ có 1 thì phải chỉnh sửa lại sao cho ca và nhạc đều được không quá dở ....
          Hôm qua, 09:10
        • Ng.Phuong.5
          Vấn đề in lỗ khoan ra pdf ở Orcad 9.2
          bởi Ng.Phuong.5
          Vấn đề cũ: khi in mạch ra pdf và bấm chọn Keep Drill Holes Open, in ra thì pdf trắng đen các lỗ chân linh kiện như nhau. Mặc dù có linh kiện phần Drill là 1mm, có linh kiện thì là 3mm. Cho em hỏi cách sửa phần này ở Orcad 9.2 với ạ.
          Mấy con...
          09-01-2025, 19:44
        • viettinh
          Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
          bởi viettinh
          Bác nói đúng quá. Cơ mà muốn mua hàng chính hãng, hàng thương hiệu mà tai lại hợp hàng tầu mới khổ chứ.
          Đang tính mua cái loa tầu nữa cột đằng sau loa này, Loa sony chỉ để hát nhép thôi, có dc k các bác ...
          09-01-2025, 18:12
        • nguyendinhvan
          Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
          bởi nguyendinhvan
          Theo tôi thì khi hpj sản xuất ra cái loa đó, đã có nhiều chuyên gia kỹ thuật hiệu chỉnh, tính toán các phần tử kỹ lưỡng rồi.
          Bây giờ tính toán hiệu chỉnh lại cần có đội ngũ tương đương với nhà sản xuất.
          Cách đơn giản...
          09-01-2025, 00:04
        • mèomướp
          Trả lời cho Sửa bộ nguồn DC 60V 45A
          bởi mèomướp
          Dạ cháu có ý tốt muốn động viên chú ấy ngâm cứu khoa học thôi ạ. Về phần kiểm tra dao động thì chú ấy chưa biết thì sẽ tìm hiểu được là cần những gì ạ, chắc chắn là khi hướng dẫn phần ấy các cô chú nào đó sẽ lưu ý cần loại sò công suất ra tránh cháy nổ rồi ạ....
          08-01-2025, 19:02
        • tuyennhan
          Trả lời cho Sửa bộ nguồn DC 60V 45A
          bởi tuyennhan
          Chủ thớt hỏi có kiểm tra được dao động mà không cấp nguồn thì rõ trình ở mức nào mà mèo còn xúi ngâm cứu nữa ác vậy ....
          08-01-2025, 15:43
        • tuyennhan
          Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
          bởi tuyennhan
          Loa bass đấu trực tiếp không qua phân tần để thành loa toàn dải xem có thoát tiếng khộng , nếu không thoát cần phải sửa lại mạch cs hay âm sắc nếu đủ trình còn nếu thoát ca hay nhưng chưa vừa ý vì bass kém chăc thì đấu lại như cũ và đấu thêm loa mid treble bên ngoài .
          08-01-2025, 15:28
        • mèomướp
          Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
          bởi mèomướp
          Dạ loa tép bé xíu như ngón chân cái thôi ạ. Thiếu gì chỗ để đâu. Quan trọng là gắn thêm nó loa nghe ok hay ko thôi ạ...
          08-01-2025, 11:44
        Đang tải...
        X