Thông báo

Collapse
No announcement yet.

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

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

  • 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

  • #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


    • #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


      • #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


        • #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


          • #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...
            X