AVR cho người mới bắt đầu

Collapse
This is a sticky topic.
X
X
 
  • Giờ
  • Show
Clear All
new posts
  • ttyanhtu
    Thành viên mới
    • Apr 2009
    • 13

    #316
    AVR trong robocon, các pác nghĩ sao

    Comment

    • chinh_cover
      Thành viên tích cực
      • Apr 2009
      • 167

      #317
      Quá tốt chứ sao.Robocon thì hơi phí vì tốc độ xử lý của AVR vào dạng khủng đấy đối với mọi ứng dụng.Tôi nghĩ nó rất thích hợp cho lập trình hệ nhúng.

      Comment

      • anhtu
        Thành viên mới
        • May 2009
        • 2

        #318
        Chào các bác em mới vào nghề em đang tìm hiểu về avr lập trình để điều khiển hiển thị cân trọng lượng lớn ,A nhân tiện cho em hỏi địa chỉ tin cậy nơi cung cấp các thiết bị liên quan đến avr nha trân thành cảm ơn

        Comment

        • anhtu
          Thành viên mới
          • May 2009
          • 2

          #319
          Nguyên văn bởi ttyanhtu Xem bài viết
          AVR trong robocon, các pác nghĩ sao
          o vậy thì tốt quá đung món mình yêu thích rồi cho mình tham gia cùng tìm hiểu nha

          Comment

          • mice
            Thành viên chính thức
            • Mar 2009
            • 62

            #320
            Ảnh hưởng của thạch anh ngoài đến hoạt động của AVR

            Sau một thời gian học AVR mh đã làm được một số ứng dụng đơn giản chủ chọn thạch anh 11.059 MHz vì khi sử dụng không thấy gặp lỗi khi nạp, khi chọn 4 MHz thì chip bị die liên tục. Các bác có thể giải thích thạch anh ngoài có giá trị khác nhau có ảnh hưởng gì đến hoạt động trong mạch???. Thanks!!!

            Comment

            • minhhieu
              Thành viên tích cực
              • Mar 2006
              • 499

              #321
              Nguyên văn bởi mice Xem bài viết
              Sau một thời gian học AVR mh đã làm được một số ứng dụng đơn giản chủ chọn thạch anh 11.059 MHz vì khi sử dụng không thấy gặp lỗi khi nạp, khi chọn 4 MHz thì chip bị die liên tục. Các bác có thể giải thích thạch anh ngoài có giá trị khác nhau có ảnh hưởng gì đến hoạt động trong mạch???. Thanks!!!
              Tôi dùng thạch anh ngoài 4Mhz nạp bao nhiêu con đâu có chết con nào đâu nhi.
              Thạch anh bên ngoài có ảnh hưởng đến tốc độ nạp ISP chứ không làm chết AVR đâu. Thạch anh có tần số lớn sẽ làm tăng tốc độ xử lý của AVR. Tốc độ này được giới hạn tùy theo loại AVR. Thông thường thạch anh hay sử dụng là từ 0-8MHz đối với AVR có đuôi L và 0-16MHz đối với AVR không có đuôi L hoặc V.
              n
              ĐT: 0986 492 489

              Tham khảo:

              Comment

              • mrcuongcon
                Thành viên tích cực
                • Oct 2007
                • 737

                #322
                Nguyên văn bởi mice Xem bài viết
                Sau một thời gian học AVR mh đã làm được một số ứng dụng đơn giản chủ chọn thạch anh 11.059 MHz vì khi sử dụng không thấy gặp lỗi khi nạp, khi chọn 4 MHz thì chip bị die liên tục. Các bác có thể giải thích thạch anh ngoài có giá trị khác nhau có ảnh hưởng gì đến hoạt động trong mạch???. Thanks!!!
                Ngày trước mình cũng hay ngộ nhận những hiện tượng kiểu như thế này( nào là nguồn điện, nào là loại chíp, nào là đến cả thằng bán hàng đểu cho mình...), cuối cùng rồi thì trình cao dần, vẫn mạch vậy, vẫn những linh kiện vậy, nạp con nào là được con đó, thạch anh nào cũng nạp ráo hết cả....

                Comment

                • ntndtk3
                  Thành viên mới
                  • Mar 2009
                  • 8

                  #323
                  phần link về tài liệu hay quá ta!hihi

                  Comment

                  • kimhuynguyen
                    Thành viên tích cực
                    • Nov 2007
                    • 211

                    #324
                    Nguyên văn bởi huanute
                    Chào các bạn,mình tên Huân.Có ai giúp mình việc này được không?
                    Mình đang lập trình cho ATMEGA16, khi sử dụng timer0 làm bộ đếm, trong codevision, khi muốn nhảy đến địa chỉa ngắt của timer 0 ta dùng cú pháp như sau:
                    interrupt [TIM0_OVF] void timer0_ovf_isr(void)
                    Trong đó: interrupt [TIM0_OVF] là khai báo để nhảy đến địa chỉ ngắt của timer0
                    Còn void timer0_ovf_isr(void) là hàm thực hiện khi có sự kiện ngắt xảy ra.
                    Vậy bây giờ mình không muốn khai báo là interrupt [TIM0_OVF] mà muốn khai báo bằng 1 tên khác, ví dụ: ngat [TIM0_OVF]
                    Mình có thể làm việc này được không? nếu có thể thì chỉnh sửa gì đó trog thư viện mega16.h cũng được.
                    Có bạn nào có thể giúp mình được không? mình xin cảm ơn.

                    mail của mình: nguyenhuanute@yahoo.co.uk
                    phần "interrupt [TIM0_OVF]" là cú pháp của chương trình và phải giữ đúng như vậy, cũng giống như bạn không thể thay "if" bằng "nếu"
                    More friends more foods

                    Comment

                    • khuyenbk
                      Thành viên tích cực
                      • May 2009
                      • 318

                      #325
                      Chả có ai nói về Ram ngoài của AVR nhỉ ?
                      Mấy bác có sao cho em hỏi về Ram ngoài của AVR với, em cũng biết làm chút ít về con amega128 rồi nhưng chỉ là học mò thôi. Bây giừ em đang làm bảng quang nên cần mở rộng Ram nhưng chưa bít nó làm việc thế nào, phần cứng và phần mềm bó vào nhau như thế nào
                      Ai làm rồi thì chia sẻ với ?.Có bài mẫu thì càng tốt

                      Comment

                      • blackmoon
                        Thành viên tích cực
                        • Jul 2005
                        • 363

                        #326
                        Nguyên văn bởi khuyenbk
                        Chả có ai nói về Ram ngoài của AVR nhỉ ?
                        Mấy bác có sao cho em hỏi về Ram ngoài của AVR với, em cũng biết làm chút ít về con amega128 rồi nhưng chỉ là học mò thôi. Bây giừ em đang làm bảng quang nên cần mở rộng Ram nhưng chưa bít nó làm việc thế nào, phần cứng và phần mềm bó vào nhau như thế nào
                        Ai làm rồi thì chia sẻ với ?.Có bài mẫu thì càng tốt
                        Bạn tham khảo luồng này xem: http://dientuvietnam.net/forums/showthread.php?t=26491
                        Thân mến,
                        blackmoon.

                        Comment

                        • blackmoon
                          Thành viên tích cực
                          • Jul 2005
                          • 363

                          #327
                          Nguyên văn bởi huanute
                          Trong codevison có dòng định nghĩa PORTD là: sfrb PORTD=0x12;
                          Như vậy PORTD có địa chỉa là 12h.
                          Bây giờ mình khai báo 1 con trỏ:
                          unsigned char *c_tro;
                          Mình muốn địa chỉ của con trỏ c_tro mang giá trị là 12h thì làm thế nào?
                          có phải là như vậy không: c_tro = &PORTD
                          Sau đó mình muốn PORTD chớp tắt thì mình làm thế này có được không?

                          //chương trình chớp tắt PORTD
                          *c_tro=~*ctro;
                          delay_ms(200);
                          *c_tro=~*ctro;
                          delay_ms(200);


                          Sau đó mình cũng muốn PORTC chớp tắt, mình có thể làm như thế này được không?
                          c_tro = c_tro + 3 //15h là địa chỉ của PORTC

                          //chương trình chớp tắt PORTC
                          *c_tro=~*ctro;
                          delay_ms(200);
                          *c_tro=~*ctro;
                          delay_ms(200);



                          Sau đó mình cũng muốn PORTB chớp tắt, mình có thể làm như thế này được không?
                          c_tro = c_tro + 3 //18h là địa chỉ của PORTB

                          //chương trình chớp tắt PORTB
                          *c_tro=~*ctro;
                          delay_ms(200);
                          *c_tro=~*ctro;
                          delay_ms(200);

                          Cho hỏi, trong diễn đàn này có ai biết mình làm thế này có đúng hay không, nếu làm không đúng thì có ai có cách khác giúp mình hay không, mình chủ yếu là muốn xuất giá trị của biến thông qua địa chỉ của biến đó. Cảm ơn nhiều
                          Tôi không hiểu bạn tại sao bạn cần dùng pointer cho các thanh ghi, khi mà việc truy xuất các thanh ghi đều có tên riêng trực tiếp, và thông thường đều là truy xuất riêng lẻ, không phải truy xuất mảng.
                          Bạn có thể thử thế này:
                          PORTD = ~PORTD;
                          PORTC = ~PORTC;
                          ...

                          Thân mến,
                          blackmoon.

                          Comment

                          • blackmoon
                            Thành viên tích cực
                            • Jul 2005
                            • 363

                            #328
                            - Khi mình không muốn cho chương trình sử dụng vùng Ram nội từ 60H đến 100H (ATMEGA16) thì làm thế nào?
                            RAM của vi điều khiển được C compiler dùng cho nhiều mục đích: biến, stack, ... Người dùng trong đa số trường hợp đều ko can thiệp đến việc sử dụng RAM của compiler, vì mục đích tối ưu của nó. Với trường hợp của bạn, sử dụng CodeVisionAVR, có lẽ chỉ có cách khai báo biến đặt tại địa chỉ ô nhớ đó (giống như mong muốn của bạn ở phía dưới) thì C compiler sẽ ko dùng ô nhớ đó vào việc khác.


                            - Mình muốn khai báo 1 mảng gồm 160 phần tử mà địa chỉ đầu tiến là 60H và địa chỉ cuối cùng là 100H thì làm thế nào?
                            Trong Help của CodeVision có đề cập đến vấn đề này, sử dụng toán tử @:
                            unsigned char k[160] @0x60;

                            Các bạn sẽ học được rất nhiều điều từ Help của phần mềm, vậy hãy dành thời gian cho điều đó.
                            Thân mến,
                            blackmoon.

                            Comment

                            • khuyenbk
                              Thành viên tích cực
                              • May 2009
                              • 318

                              #329
                              Cảm ơn bác blackmoon !! .Em làm được rồi

                              Nhưng có vấn đề nữa xin hỏi bác tí :
                              Em dùng Codevision để làm , và dùng CodewiZard để thiết lập giống như người ta. Nhưng đến chỗ I2C chọn DS1307 để hiện thời gian thực ,thì ko hiểu sao em ko làm so để móc được cho ra cái DS1307.h để thực hiện. Trong khi đó em thấy họ làm ngon lành, em ko biết là do phiên bản Code hay là thế nào. Thiết lập cho I2C thì vẫn được , nhưng DS1307 thì ko thể
                              Em cũng đã thử các phiên bản Code khác nhưng đề ko được.
                              Ai biết rồi giúp em với.
                              Cảm ơn nhìu nhìu!!!!!

                              Comment

                              • khuyenbk
                                Thành viên tích cực
                                • May 2009
                                • 318

                                #330
                                Ah quên !!!
                                Lõi như vầy nè

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...