Thông báo

Collapse
No announcement yet.

Timer - Watchdog - Dao động...

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

  • Timer - Watchdog - Dao động...

    Có ai hiểu rỏ về hoạt động của WatchDog Timer trong vi điều khiển pic16f84a
    chu ky time-out
    WDT count
    cách tính

  • #2
    WDT trong 16F84A sử dụng nguồn clock từ mạch dao động RC bên trong (độc lập với RC của hệ thống), do vậy mà WDT vẫn có clock để hoạt động ngay cả khi mạch dao động của hệ thống bị dừng (chế độ SLEEP chẳng hạn).
    Trong trường hợp hoạt động bình thường thì khi tràn WDT sẽ reset PIC.
    Trong trường hợp đang ngủ (chế độ SLEEP), khi tràn WDT sẽ chỉ đánh thức PIC thôi.
    Việc on/off (sử dụng hay không sử dụng WDT) thực hiện bằng bit WDTE (config bằng phần cứng, không thay đổi khi đang chạy được).
    Chu kỳ time-out của WDT của 16F84A luôn là 18ms nếu không chia. Thực tế thì giá trị này phụ thuộc vào một số tham số như nhiệt độ, nguồn cấp... Các hạ có thể dùng thang chia sau (postscaler) để kéo dài chu kỳ time-out của WDT. Giá trị của thang chia do 3 bit PS2..0 trong thanh ghi OPTION_REG. Giá trị chia cực đại là 128, tương đương với chu kỳ time-out khoảng 18*128 = 2.304 sec. Điều khiển thang chia có thể thực hiện bằng phần mềm (ghi vào thanh ghi OPTION_REG).

    Giang hồ hiểm ác, bảo trọng.

    Comment


    • #3
      Nguyên văn bởi blackmoon
      WDT trong 16F84A sử dụng nguồn clock từ mạch dao động RC bên trong (độc lập với RC của hệ thống), do vậy mà WDT vẫn có clock để hoạt động ngay cả khi mạch dao động của hệ thống bị dừng (chế độ SLEEP chẳng hạn).
      Trong trường hợp hoạt động bình thường thì khi tràn WDT sẽ reset PIC.
      Trong trường hợp đang ngủ (chế độ SLEEP), khi tràn WDT sẽ chỉ đánh thức PIC thôi.
      Việc on/off (sử dụng hay không sử dụng WDT) thực hiện bằng bit WDTE (config bằng phần cứng, không thay đổi khi đang chạy được).
      Chu kỳ time-out của WDT của 16F84A luôn là 18ms nếu không chia. Thực tế thì giá trị này phụ thuộc vào một số tham số như nhiệt độ, nguồn cấp... Các hạ có thể dùng thang chia sau (postscaler) để kéo dài chu kỳ time-out của WDT. Giá trị của thang chia do 3 bit PS2..0 trong thanh ghi OPTION_REG. Giá trị chia cực đại là 128, tương đương với chu kỳ time-out khoảng 18*128 = 2.304 sec. Điều khiển thang chia có thể thực hiện bằng phần mềm (ghi vào thanh ghi OPTION_REG).

      Giang hồ hiểm ác, bảo trọng.
      Sư phụ quả nhiên thần lực phi phàm
      Học trò xin có đôi nhời bổ sung, WDT dùng bộ chia trước prescaler có giá trị từ 1..128 phụ thuộc 3 bit PS2,PS2,PS0. Bộ chia sau Postscaler dùng cho Timer2. Cái chu kì WDT này dòng 16 có bộ chia nên được cỡ 2.3s còn bọn PIC18 thì nó lại dùng bộ chia sau Postscaler và giá trị cực đại là 32.768*T WDT.

      Dòng 16 enable WDT cứng, còn dòng 18 còn có thể cả cứng cả mềm.

      To TUAN795: Bạn nên dùng một dòng PIC mới hơn để luyện tập, con 84A này ít tính năng lắm nên dùng 876A,877A là hay nhất.

      Comment


      • #4
        Cám ơn ý kiến của bác thật ra những điều bác nêu ra tôi đã biết. Như chúng ta đã biết chu kỳ time-out của pic16f84a nó thay đổi theo nhiệt độ, và Vdd...Nếu như chúng ta ổn định Vdd(Vdd=const) thì ta có mối quan hệ giữa nhiệt độ và WDT count gần như tuyến tính .từ đó ta có thể áp dụng tính chất này để làm nhiệt kế dùng chính cảm biến của bản than vi điều khiển. Nhưng khi đọc tài liệu từ website của microchip thì có quá nhiều thuật ngữ làm tôi bối rối như chu kỳ time-out time, WDT count, WDT time, các bác nào rành về chúng chỉ cho em với và có sư khác nhau giữa WDT count và WDT time không cám ơn nhiều

        Comment


        • #5
          Nguyên văn bởi TUAN795
          Cám ơn ý kiến của bác thật ra những điều bác nêu ra tôi đã biết. Như chúng ta đã biết chu kỳ time-out của pic16f84a nó thay đổi theo nhiệt độ, và Vdd...Nếu như chúng ta ổn định Vdd(Vdd=const) thì ta có mối quan hệ giữa nhiệt độ và WDT count gần như tuyến tính .từ đó ta có thể áp dụng tính chất này để làm nhiệt kế dùng chính cảm biến của bản than vi điều khiển. Nhưng khi đọc tài liệu từ website của microchip thì có quá nhiều thuật ngữ làm tôi bối rối như chu kỳ time-out time, WDT count, WDT time, các bác nào rành về chúng chỉ cho em với và có sư khác nhau giữa WDT count và WDT time không cám ơn nhiều
          Timer thì luôn đi đôi với khái niệm tràn ví dụ như 255-->0 hay 65535-->0 theo tôi hiểu thì time-out chính là khoảng thời gian từ lúc timer chạy đến lúc tràn.
          ví dụ (256-TMR0)*TOSC hay (65535-(TMR1H*256+TMR1L))*TOSC.

          WDT thực chất cũng là một Timer, nó dùng bộ dao động trong RC độc lập với xung Clock hệ thống, nó cũng cần có một giá trị nào đó để tràn, giá trị này chính là WDT counter. Ví dụ sau lệnh CLRWDT thì giá trị WDT Counter được đưa về 0.

          WDT Time-out chính là thời gian tràn timer WDT ví dụ như 84A là 18ms.

          Tôi có đôi nhời mạo muội thế này ! Mong các cao thủ bổ sung.

          Comment


          • #6
            Watchdog timer nằm giữa 2 giá trị (MIN,MAX), tinh toán thực tế phải theo giá trị MIN cho an toàn. Bởi khi nhiệt độ thay đổi, thì giá trị ko kiểm soát được. Giá trị MIN theo datasheet là 7ms, max là 33ms. Vậy lấy giá trị tính toán là 7ms.
            Vị du nếu chon Prescale wd là 64 thi giá trị tính toán phải là: 64*7ms.
            Một vòng lặp trong main <64*7ms mới đúng. Nếu lớn hơn ta phải chèn các dòng xóa cờ watchdog nếu ko sẽ bị reset lại.
            Các giá trị 7ms--33ms trên chỉ nói với PIC, còn với AVR, 89s lại có giá trị khác. Nhưng ly thuyết chung có lẽ vẫn vậy

            Comment


            • #7
              Khi Watchdog timer tràn thì nó sẽ làm reset pic, nhưng theo các bạn tính toán ở trên thời gian tràn của pic rất nhỏ chỉ tính bằng second. Do vậy 1 bài toán đặt ra là khi pic dang thực thi lệnh điều khiển mà bị reset thì sẽ xảy ra điều gì???
              Mình cũng chưa biết rõ về watchdog timer nhưng theo suy nghĩ của mình thì việc dùng watchdog timer mục đích chính là để tránh những trường hợp pic bị treo, vì vậy phải để pic reset vào những thời điểm không có ai sử dụng cả (ví dụ 1,2h sáng chẳng hạn)????
              Vạy có thể đặt thời gian reset của PIC trong khoảng 24h hoặc lớn hơn không???
              Ngoài ra watchdog timer của PIC còn có chức năng nào khác không?
              Mong mọi người góp ý kiến.

              Comment


              • #8
                Nguyên văn bởi MoH
                Khi Watchdog timer tràn thì nó sẽ làm reset pic, nhưng theo các bạn tính toán ở trên thời gian tràn của pic rất nhỏ chỉ tính bằng second. Do vậy 1 bài toán đặt ra là khi pic dang thực thi lệnh điều khiển mà bị reset thì sẽ xảy ra điều gì???
                Mình cũng chưa biết rõ về watchdog timer nhưng theo suy nghĩ của mình thì việc dùng watchdog timer mục đích chính là để tránh những trường hợp pic bị treo, vì vậy phải để pic reset vào những thời điểm không có ai sử dụng cả (ví dụ 1,2h sáng chẳng hạn)????
                Vạy có thể đặt thời gian reset của PIC trong khoảng 24h hoặc lớn hơn không???
                Ngoài ra watchdog timer của PIC còn có chức năng nào khác không?
                Mong mọi người góp ý kiến.
                Chuyện MUC sẽ bị Reset bởi WDT tràn là bởi "trước khi" WDT tràn nó không bắt gặp một trong 2 lệnh sau: CLRWDT hoặc SLEEP

                Nếu trước khi WDT tràn chương trình gặp lệnh CLRWDT thì WDT sẽ bị xóa, và nó sẽ chạy lại từ đầu. Bằng cách này chúng ta tính toán sao cho trước khi WDT tràn ta chèn vào một lệnh CLRWDT, và làm nhiều lệnh CLRWDT chúng ta sẽ tạo ra được một thời gian để WDT tràn lâu hơn( mặc định giá trị max chỉ khoảng 2,3s- với các điều kiện lý tưởng như của nhà sản xuất đề cập trong giản đồ ảnh hưởng xung áp,nhiệt độ...).

                Hoặc trước khi WDT tràn, chương trình gặp phải lệnh SLEEP thì MCU sẽ rơi vào trạng thái ngũ đông, với chu kỳ của WDT như đã được thiết lập trong bộ pescaler.Tuy nhiên thời gian này cũng còn quá nhỏ, mặc định giá trị max chỉ khoảng 2,3s- với các điều kiện lý tưởng như của nhà sản xuất đề cập trong giản đồ ảnh hưởng xung áp,nhiệt độ.... Vậy để làm sao để MCU ngũ đông lâu hơn? Bằng cách đặt/chèn nhiều lệnh SLEEP liên tiếp nhau.
                Ví dụ ta chọn chu kỳ tràn của WDT là 2,3s. Vậy để PIC ngũ đông lâu hơn đến 4,6s thì ta sẽ làm như sau:
                Đây là một trích đoạn:
                ;----------------------;
                SLEEP ; Tại đây WDT sẽ rơi vào trạng thái ngũ đông!
                NOP ; Tại đây chương trình sẽ đợi cho đến khi WDFT tràn
                SLEEP
                NOP ; Tại đây chương trình sẽ đợi cho đến khi WDFT tràn
                ;----------------------;

                Ở đây sau lệnh SLEEP, thì bộ đếm chương trình sẽ tăng lên thêm 1 và rơi vào trạng thái ngũ đông, hay gọi là MCU ở mode POWER DOWN. Vậy là:
                PC=PC+1
                Do đó, chúng ta cần đặt thêm một " lệnh NOP " sau lệnh SLEEP.

                Khi thoát khỏi chế độ ngũ đông, khác với ở trên khi WDT gặp lện CLRWDT (không gặp lệnh SLEEP) thì ở đây do trước khi tràn WDT gặp lệnh SLEEP nên PIC sẽ tiếp tục chạy chương trình còn đang lỡ dỡ, và cụ thể sẽ bắt đầu tại PC+1.

                Một trong những vất vả của chuyện sử dụng WDT là tính toán các chu lỳ thực thi lệnh, nhằm tìm ra nơi mà tại đó WDT sẽ tràn! Ta sẽ chèn vào đó các lệnh CLRWDT hay SLEEP.

                Tuy nhiên do WDT nó hoạt động với bộ OSC bên trong riêng biệt không cần đến bộ OSC bên ngoài! Vì vậy mà nó ảnh hưởng nhiều vào nhiệt độ phòng, điện áp,.....Do đó khi lập trình cần tính toán sao cho khi ta chọn một con số để WDT tràn nhỏ hơn chu kỳ tràn của WDT để đảm bảo rằng luôn luôn đúng!
                Ngoài ra dựa vào sự biến thiên bởi ảnh hưởng này Microchip có làm một ứng dụ mấu làm bộ đo nhiệt độ mà chính bản thân của PIC cũng là một cảm biến!
                Last edited by MicroDuyphi; 10-01-2006, 18:49.

                Comment


                • #9
                  Bạn DP giải thích nếu đưa sleep vào thì làm cho bạn kia thêm khó hiểu.Ứng dụng WD:
                  -Reset nếu uC bị treo.
                  -Có thể tạo một timer siêu tiết kiệm năng lượng(áp dụng với một số loại uC trong đó có PIC).

                  Comment


                  • #10
                    Bạn DP giải thích nếu đưa sleep vào thì làm cho bạn kia thêm khó hiểu.Ứng dụng WD:
                    -Reset nếu uC bị treo.
                    -Có thể tạo một timer siêu tiết kiệm năng lượng(áp dụng với một số loại uC trong đó có PIC).

                    Khi nào thì uC bị treo, thông thường có một vài lý do sau đây:
                    - Chương trình viết bị lỗi
                    - Nhiễu điện làm sai số một số ô nhớ làm chương trình bị lỗi.
                    - Bộ dao động kém, Reset kô biết có khắc phục đc kô ???
                    WD còn dùng để thức uC dậy khi đang sleep.
                    VDK Sleep vì một vài lý do sau đây:
                    - Chẳng có việc gì làm phải ngủ. Ngủ thì tiêu tốn ít năng lượng hơn lao động. Mà đã ngủ dĩ nhiên là phải dậy. Chứ ngủ luôn thì là chết chứ ngủ gì. Mà đã dậy thì phải có lúc nào đó dậy ví dụ như là đến giờ dậy rồi hoặc là có nguyên nhân gì đấy, ví dụ bọn chung ký túc gọi dậy đánh bài hoặc đi đá bóng, chuyện đá bóng lúc 1-2h sáng ở KTX BK không hiếm... Ở đây giờ dậy là do WD qui định còn các ngắt khác là các trường hợp khác và bàn ở chỗ khác.
                    Vậy trước khi ngủ thì nhớ đặt đồng hồ như thế này.
                    clrwdg ; Đặt đồng hồ
                    sleep ; Ngủ
                    Ui, viết đến đây cô nương 3T chuẩn bị đính chính rồi.
                    Hi hi, thực ra thì do không phải lúc nào ta cũng nhớ đặt đồng hồ nên bọn Microchip đã giúp ta bằng cách khi ta ngủ là tự đặt đồng hồ rồi vậy chỉ cần.
                    sleep ; Đi ngủ đồng hồ tự đặt rồi (phải không 3T)
                    Nhưng mà sleep là ngủ gật thôi. Tức là giống như ngủ trong giờ học vậy. Chân tay à nhầm các port vẫn ở trạng thái như trước khi ngủ. Tức là sẵn sàng viết bài nếu đứa bạn đá vào chân, "thầy xuống kìa"...
                    Cái này muốn nói cho vui thôi.
                    Cái muốn nói ở đây là khi dậy rồi thì làm gì cơ. Chẳng hạn bạn rủ đi đá bóng thì đi đá bóng rồi.
                    Còn đồng hồ gọi dậy thì phải làm gì chẳng nhẽ lại
                    sleep ; Ngủ - Ngủ một lúc thì WD tràn và gọi dậy
                    nop ; Dậy nhìn quanh một vòng
                    sleep ; Ngủ tiếp
                    noob ; Lại dậy nhìn quanh.
                    Trừ phi người ta cần ngủ rất lâu ví dụ biết chắc tiết sau thầy dạy vẫn ru ngủ vậy ta ngủ luôn lấy sức đêm qua đá bóng. Như vậy chắc chỉ cần thế này.
                    sleep ; Ngủ
                    sleep ; Gõ đồng hồ cái cong rồi ngủ tiếp
                    ...
                    Còn không thì nên thế này
                    sleep() // Ngủ
                    if (CheckJob() == 0) // Kiểm tra xem có việc gì không
                    { sleep // Không ngủ tiếp. Dĩ nhiên là đồng hồ tự đặt rồi
                    } else
                    { // Còn: làm gì đó
                    return ; Ví dụ là về nhà làm bài tập
                    }

                    Tiếp theo:
                    Thế nào là timer siêu tiết kiệm năng lượng ???
                    - Hổng biết. Cái này chắc có liên quan gì đấy đến siêu nhân.
                    Vẫn biết mỗi lần xa là một lần về lại...

                    Comment


                    • #11
                      Nguyên văn bởi qmk
                      Thế nào là timer siêu tiết kiệm năng lượng ???
                      - Hổng biết. Cái này chắc có liên quan gì đấy đến siêu nhân.
                      Hi hi... đây này anh ới.
                      //Những khởi tạo cần thiết, nhất thiết Enable Watchdog.
                      //Gọi i là biến thời gian,T_WD là thời gian WD, muốn sau thời gian x làm một việc y gì đó và ko muốn trả tiền mua PIN(điện)thì có thể làm cách như sau:
                      While(1)
                      {
                      for (i=0;i<x/T_WD;i++) SLEEP();

                      //Làm việc y....
                      }
                      Cách này là một cách hẹn thời gian tương đối, bởi timer wd ko được chính xác cho lắm. Nhưng những ứng dụng kiểu sau khoảng 10 giây, đo khí gas một lần thì được.

                      Còn việc:
                      Nguyên văn bởi qmk
                      Bộ dao động kém, Reset kô biết có khắc phục đc kô ???
                      Chắc là ko, vì bộ dao động kém chất lượng , rơi vào trường hợp hoạt động lâu nó có thể nóng lên và sai hoặc ngừng dao động. Reset ko làm nguội được nên ko làm dao động được tốt hơn

                      Comment


                      • #12
                        Nguyên văn bởi thaithutrang
                        Hi hi... đây này anh ới.
                        Chắc là ko, vì bộ dao động kém chất lượng , rơi vào trường hợp hoạt động lâu nó có thể nóng lên và sai hoặc ngừng dao động. Reset ko làm nguội được nên ko làm dao động được tốt hơn
                        Chính xác, sai số do nhiệt độ của thạch anh là một sai số đáng kể, em không cần phải "chắc là" đâu . Ảnh hưởng này thấy rõ rệt ở các phòng thí nghiệm các nước ôn đới. Đang thí nghiệm khoảng 25C, ra ngoài -5C, có vấn đề ngay.

                        Ví dụ về WD của em là một thí dụ kinh điển trong việc sử dụng WD, nó có hẳn một cái app note, nếu anh nhớ không nhầm, hướng dẫn về việc sử dụng WD thay timer.

                        Bài viết rất tốt!
                        Falleaf
                        Công ty TNHH Thương mại và Giao nhận R&P
                        58/57 Nguyễn Minh Hoàng - Phường 12 - Quận Tân Bình - TP.HCM
                        mail@falleaf.net - VP: (04) 36408561 - (08) 38119870

                        Comment


                        • #13
                          Sai số của WD so với sai số của Thạch Anh do trôi nhiệt là ko đáng kể đâu anh. Vì sai số của TA chỉ khoảng mười mũ năm con số không, ko đáng kể so với wd(hàng chục %). Có lẽ ở đây anh qmk nói tới việc bộ dao động nào đó gần hỏng chăng? kiểu như cái đài bán dẫn của bố em, chạy liên tục khoảng 30 phút thì nó tắt ngấm, tắt và bật liền thì vẫn ko chạy(WD của anh qmk), nhưng tắt và đê khoảng 5 phút(để nguội) thì bật lại hoạt động.
                          Còn App đó em chưa đọc,nhưng em nghĩ chắc nó cũng vậy,có chăng có cách khác nữa thì nếu ko dùng thêm sleep thì phải dùng cách ghi vào EEPROM hoặc các vị trí RAM đặc biệt. Cách này thì ko tiết kiệm năng lượng
                          Last edited by thaithutrang; 11-01-2006, 09:39.

                          Comment


                          • #14
                            Nguyên văn bởi thaithutrang
                            Sai số của WD so với sai số của Thạch Anh do trôi nhiệt là ko đáng kể đâu anh. Vì sai số của TA chỉ khoảng mười mũ năm con số không, ko đáng kể so với wd(hàng chục %). Có lẽ ở đây anh qmk nói tới việc bộ dao động nào đó gần hỏng chăng? kiểu như cái đài bán dẫn của bố em, chạy liên tục khoảng 30 phút thì nó tắt ngấm, tắt và bật liền thì vẫn ko chạy(WD của anh qmk), nhưng tắt và đê khoảng 5 phút(để nguội) thì bật lại hoạt động.
                            Còn App đó em chưa đọc,nhưng em nghĩ chắc nó cũng vậy,có chăng có cách khác nữa thì nếu ko dùng thêm sleep thì phải dùng cách ghi vào EEPROM hoặc các vị trí RAM đặc biệt. Cách này thì ko tiết kiệm năng lượng
                            Về cái nhiệt độ, em chưa đúng rồi, bởi vì thực tế là vậy. Bây giờ, anh đánh giá cho em nhé. Sai số thạch anh 0.01%/1do. Có nghĩa là 1000000 xung thi sai 10 xung. Như vậy, thạch anh 20MHz, số xung sai sẽ là 20 xung. Hay nói cách khác, sau 100000s, nó sẽ sai 1 lệnh. Vậy em tính thử, em chạy máy được thời gian bao lâu, thì nó sẽ không thể thực hiện lệnh SLEEP nữa? Chưa kể chênh lệch hàng chục độ phòng thí nghiệm và ngoài trời.

                            Em phải xem lại, WD không phụ thuộc dao động thạch anh, chinh vi vay, sai so cua WD ở thời điểm tức thời, một hai lần RESET không ảnh hưởng gì cả. Nhưng nếu ứng dụng WD thay timer trong thời gian dài, hoặc trong nhưng ứng dụng giao tiếp, điển hình em sắp làm việc với CAN, frame truyền lớn, ảnh hưởng rất rõ rệt

                            http://ww1.microchip.com/downloads/e...tes/91003a.pdf

                            Đây là cái appnote anh để cập. Giả định về thạch anh chính xác là một giải định vô cùng quan trọng. Và những con thạch anh người ta sử dụng, độ chính xác rất cao, không giống như thạch anh mình mua ngoài chợ. Ngay cả khi độ chính xác cao như vậy, sai số nhỏ của thạch anh còn dùng để calibrate cái WD, trong khi nếu em dùng WD thay timer, không calibrate, mà thạch anh sai số lớn, thì thua là chắc. Lớn ở đây anh nói là 0.01%.

                            Em tưởng tượng, nếu chạy WD thay timer, thì có những chuyện gì xảy ra. Bản chất của WD không phụ thuộc dao động, WD không tích lũy, nhưng phụ thuộc điện áp và nhiệt độ (nhiệt độ ảnh hưởng đến R,C nội). Nhưng dao động lại là sai số tích lũy, phụ thuộc vào nhiệt độ. Khi đó, nếu chạy quá lâu, nó không đảm bảo tác vụ sẽ được thực hiện khi WD reset. RESET không cải thiện được sai số dao động thạch anh.

                            Về việc cái đài của bố em, nóng lên, tắt đi không chạy nữa... thực ra rất đơn giản, em mua cái bóng đèn điện 1KW về, bật lên cho nó nóng, rồi tắt đi, rồi bật lên lại liền, chưa chắc nó đã lên được. Rất nhiều nguyên nhân, không thể nói được nó nằm ở đâu trong một trường hợp mà anh không rành về nó, như cái đài của bố em. Điều này không kết luận được gì về thạch anh và WD và Timer. (em đưa vd chưa thuyết phục, nên khai thác kỹ hơn)

                            Vậy vấn đề anh qmk đặt ra, RESET có thể giúp giảm sai số bộ dao động không? Thì câu trả lời chắc chắn là không. Bởi vì sai số bộ dao động là sai số tích lũy, và sai số này hoàn toàn không liên quan gì đến sai số của WD. Nhưng sai số này là lớn hay nhỏ, phụ thuộc vào thời gian chạy máy và nhiệt độ rất lớn, không phải là một con số nhỏ.

                            |--------------------| sai số WD
                            |-| sai số tích lũy của thạch anh sau 1 chu kỳ nào đó


                            Cái nào lớn hơn, cái nào nhỏ hơn?

                            Anh làm cái này trong robot thì rất rõ, nếu em biết cái gyroscope, nó cũng mang sai số tích lũy, cho nên một cái gyro 2000USD, cũng chỉ có thể chạy ứng dụng trong 10 phút là còn đảm bảo hoạt động. Vậy thì thạch anh chính xác rất quan trọng. Sai số tích lũy là một sai số rất nguy hiểm nếu không tính toán kỹ.


                            Anh có một vài nhận xét thế này qua các bài viết của em:

                            - Các bài viết của em thể hiện em đọc rất nhiều, hiểu cũng rất sâu sắc, làm cái gì tới nơi tới chốn cái đó. Chính vì vậy, những ý em nói đều có phần rất đúng. Cái này là cái anh rất thích

                            - Tuy nhiên, những bài viết của em, thường do em không có thời gian, nên viết khá ngắn gọn. Mà chính điều ngắn gọn này chỉ có thể trả lời và gợi ra những ý, anh tạm gọi là ý tưởng. Khi em viết, lúc nào cũng chừa lại một vài ý, nếu như ai không hiểu rõ bản chất đều gặp vấn đề với em cả, và có thể nếu như không đưa đến nơi đến chốn vấn đề, nhiều khi có thể làm cho em hiểu sai đi, vì logic thì có vẻ đúng. Đây là một điểm hóm hỉnh của em mà anh rất thích. Nhưng đôi khi nó lại có hai cho em, đó là điều anh lo thôi, vì em không nhấn tới được bước cuối cùng. Cái bài LED mà anh đố em cốt yếu là để gợi cho em cái ý về việc đi đến dùng một vấn đề quan trọng như thế nào. Một số vấn đề anh biết, thì anh có thể nói đến nơi đến chốn cho em nghe, nhưng nhiều cái anh không biết lắm em à, cho nên anh muốn em rèn luyên thêm một chút khi đi đến tận cùng vấn đề, và chỉ một vài vấn đề thôi, đừng quá lan man, mất tập trung.


                            Thành thực mà nói thì anh rất thích em đó (trên phương diện kỹ thuật), và có thể hai ba ngày nữa em có thể đến gặp anh BA để lấy chip (không ngại anh gọi là bé Trang chứ?).

                            Chúc vui.
                            Falleaf
                            Công ty TNHH Thương mại và Giao nhận R&P
                            58/57 Nguyễn Minh Hoàng - Phường 12 - Quận Tân Bình - TP.HCM
                            mail@falleaf.net - VP: (04) 36408561 - (08) 38119870

                            Comment


                            • #15
                              Nguyên văn bởi thaithutrang
                              .....
                              Cách này là một cách hẹn thời gian tương đối, bởi timer wd ko được chính xác cho lắm. Nhưng những ứng dụng kiểu sau khoảng 10 giây, đo khí gas một lần thì được.
                              Em trích nguyên văn em.



                              Em đã nói rồi mà. Dùng WD thay timer thì ko chính xác ở trên rồi mà anh.Anh ko đọc kỹ bài em rồi.
                              Còn ứng dụng thì vẫn có trường hợp dùng được:ví dụ anh có một cục PIN và 1 con 12F683 va 1 cái sensor đo cái gì đó(ví dụ đo nhiệt độ phòng),vậy có giải pháp nào hay hơn ko nhỉ? hi hi... nó đáp ứng được vì:
                              -SAi số timer thoái mái, giả sử T_WD=2s,thì có thể là: 1,2-->2.8 giây nó đo một lần, ko ảnh hường gì cả.
                              -Sự kết hợp với sleep, sẽ tạo một thứ rất tiết kiệm năng lượng. Trong đó wd làm nhiệm vụ timer đánh thức sleep và đo đạc...
                              Hi hi...
                              Last edited by thaithutrang; 11-01-2006, 14:48.

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X