Giúp em điều khiển vdk avr atmega16 qua giao tiep usb

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • tuananh15986
    Thành viên chính thức
    • Jul 2007
    • 35

    #1

    Giúp em điều khiển vdk avr atmega16 qua giao tiep usb

    Mục đích của em là dùng VB tạo application đk Atmega16.atmega16 gửi tìn hiệu lên pc và hiển thị giá trị của ADC.Từ giá trị nhận đc ta gửi tìn hiệu đk cho atmega16
    anh nào có kinh nghiệm giúp em các bước xử lí nó nha.
    em cảm ơn rất nhìu
  • NMI
    Thành viên tích cực
    • Jul 2005
    • 185

    #2
    Vấn đề giao tiếp qua usb là khó đó. Vì ATmega16 muốn giao tiếp USB bạn phải có 1 IC giao tiếp nào đó, ví dụ như tớ có mấy con usbn9602 nhưng vẫn chưa làm đc vì khó
    Đơn giản hơn chút là tìm mấy con có tích hợp sẵn giao tiếp USB

    Comment

    • tuananh15986
      Thành viên chính thức
      • Jul 2007
      • 35

      #3
      mình thấy người ta dùng con at90s2313 làm giao tiếp usb đc mà.ko bit nên dùng chip nào dễ làm mà giao tiếp tốt nhỉ

      Comment

      • lehanhla
        Thành viên chính thức
        • Dec 2008
        • 38

        #4
        Làm cách nào để truyền 1 chuổi từ PC sang Atmega32

        Các bạn cho mình hỏi làm cách nào để truyền 1 chuổi từ PC sang Atmega32
        Mình đang làm PID vận tốc.Mình cần truyền Vset,Ki,Kp,Kd từ giao diện (dùng VS 2005) xuống Atmega32 ( Dùng Codevision ).
        Mình dùng PWM 9bit OCR1A
        Timer2 ngắt ở chế độ so sánh tạo CK lấy mẩu từ encoder (12ms).
        Counter0 đếm xung encoder.
        Thanks các bạn.
        Phone: 0909319477
        Email:

        Comment

        • lehanhla
          Thành viên chính thức
          • Dec 2008
          • 38

          #5
          Mình có viết 1 hàm để truyền.
          Mình muốn truyền Vset.
          Từ giao diện mình truyền:
          sp1->WriteLine(string_vset+"a");
          string_vset: là giá trị Vset
          "a":kết thúc chuổi.
          Khi bắt được chử "a" thì chuyển chuổi trước nó thành số thực.
          Test trên terminal thì thấy đúng nhưng khi test trên mô hình thì sai
          Hic.Các bạn giúp mình nhé.

          void getstr()
          {
          in_count=0;
          while((current_char=getchar()) != '\r') //return first line
          {
          if(current_char==0x08) //backspace
          {
          --in_count;
          }
          else
          {
          switch(current_char)
          {
          case'p':
          in_count=0;
          kp=atof(in_str);
          //PORTA.0=1;
          break;
          case'i':
          in_count=0;
          ki=atof(in_str);
          //PORTA.1=1;
          break;
          case'd':
          in_count=0;
          kd=atof(in_str);
          //PORTA.2=1;
          break;
          case'a':
          in_count=0;
          sp=atof(in_str);
          //PORTA.3=1;
          break;
          case'r':
          run=1;
          reset_timer2();
          //PORTC.4=1;
          break;
          case's':
          run=0;
          pwm1=0;
          time=0;
          err=0;
          elast=0;
          sum_err=0;
          d_err=0;
          //PORTC.5=1;
          break;
          case't':
          dir1=0;
          //PORTC.6=1;
          break;
          default:
          in_str[in_count++]=current_char;
          }
          if(run==1)
          {
          start_timer2();
          reset_counter0();
          start_counter0();
          }
          }
          Phone: 0909319477
          Email:

          Comment

          • lehanhla
            Thành viên chính thức
            • Dec 2008
            • 38

            #6
            Nhờ bác Mod xóa giúp em 3 bài em vừa Post ở trên
            Em Post lộn chổ rùi.
            Phone: 0909319477
            Email:

            Comment

            Về tác giả

            Collapse

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

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

            Collapse

            Đang tải...