Thông báo

Collapse
No announcement yet.

Hỏi về Keil ARM

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

  • Hỏi về Keil ARM

    Cho mình hỏi về thời gian mô phỏng trong keil arm. Mình lập trình cho lpc1114,lệnh delayms dùng timer tạo trễ 1ms. Sau đó mình debug thì thấy lệnh delayms(1000) thực hiện đúng 1s, nhưng khi nạp cho vdk thì không đúng như vậy. Cụ thể là với lệnh delay(1000000) thì thời gian trễ khoảng 2s. Sao có sự khác nhau đó???
    Mình mới code trên keil, mong mọi người giúp đỡ.
    Thân.

  • #2
    thế bạn có khai báo hàm systemint() không. mà mình thấy ở trên bạn viết và bạn xem khi debug bạn đã chỉnh tần số thạch anh đúng chưa.

    Comment


    • #3
      Mình đã khai báo SystemInit(). Thạch anh sử dụng 12MHz, file cấu hình sử dụng system_LPC11xx.c của Keil. Còn lúc debug thì chỉ Ctrl+F5 thôi, đâu có phần chỉnh lại tần số thạch anh???

      Cấu hình PLL:
      #define CLOCK_SETUP 1
      #define SYSOSCCTRL_Val 0x00000000 // Reset: 0x000 ; Fed from XTAL <1 - 20MHz>
      #define WDTOSCCTRL_Val 0x00000000 // Reset: 0x000 ; Undifined
      #define SYSPLLCTRL_Val 0x00000023 // Reset: 0x000 ; M = 4; P = 2; F_CCO = 12MHz * 2 * P * M = 192MHz; F_clkout = 48MHz
      #define SYSPLLCLKSEL_Val 0x00000001 // Reset: 0x000 ; Select System Oscillator
      #define MAINCLKSEL_Val 0x00000003 // Reset: 0x000 ; System PLL Clock out
      #define SYSAHBCLKDIV_Val 0x00000001 // Reset: 0x001 ; Divide to 1

      Cấu hình Timer (hàm timer16DelayUs)
      ...
      else if (timerNum == 1)
      {
      LPC_TMR16B1->TCR = 0x02; //Reset Timer
      LPC_TMR16B1->PR = 0x00; //TC increments every PCLK
      LPC_TMR16B1->MR0 = delayUs*(12000000*((0x23 & 0x01F) + 1)/1000000);
      LPC_TMR16B1->IR = 0x1F; //Reset all Interrupts
      LPC_TMR16B1->MCR = 0x04; //Stop Timer on Match (MR0)
      LPC_TMR16B1->TCR = 0x01; //Start Timer
      while (LPC_TMR16B1->TCR & 0x01);
      }
      return;

      Main:
      #include <LPC11xx.h>
      #include "timer_counter16.h"
      void delayms(uint32_t delay);
      int main(void)
      {
      SystemInit();
      LPC_GPIO2->DIR = 0xFF;
      while(1)
      {
      LPC_GPIO2->DATA = 0x55;
      delayms(1000);
      LPC_GPIO2->DATA = 0xAA;
      delayms(1000);
      }
      }

      void delayms(uint32_t delay)
      {
      while(delay>0)
      {
      LPC_TMR16B1->TC = 0;
      timer16DelayUs(1,1000);
      delay--;
      }
      return;
      }
      Last edited by huytung1501; 21-11-2011, 22:53.

      Comment


      • #4
        Click image for larger version

Name:	1.jpg
Views:	1
Size:	173.5 KB
ID:	1354377
        Mình lập trình UART cho LPC1114, debug thì đúng nhưng khi nạp vào chip rồi kiểm tra bằng Tera term pro thì không thấy gì cả?

        Comment


        • #5
          Coi lại clock với preset counter đi bạn. Timer-based delay không sai lệch dữ vậy đâu.

          Comment


          • #6
            có thể là do tốc độ đồng bộ của LPC1114 và CPU chưa đúng.

            Comment


            • #7
              Nguyên văn bởi trinhtuan89 Xem bài viết
              có thể là do tốc độ đồng bộ của LPC1114 và CPU chưa đúng.
              Bạn đã dùng ngắt, timer của con LM3s8962 chưa? Có gì cho t hỏi chút .tks
              Đối với Tôi Đam mê là yếu tố không thể thiếu để quyết định sự Thành Công ...!
              Gmail: -Mobile: 0989.194.472

              Comment


              • #8
                Nguyên văn bởi darkensky Xem bài viết
                Coi lại clock với preset counter đi bạn. Timer-based delay không sai lệch dữ vậy đâu.
                Cái timer thì mình làm xong rồi, quên chưa set bit cấp clock cho timer.
                Cám ơn bạn.

                Comment


                • #9
                  Nguyên văn bởi trinhtuan89 Xem bài viết
                  có thể là do tốc độ đồng bộ của LPC1114 và CPU chưa đúng.
                  Baudrate của UART và tốc độ cổng COM1 máy tính mình đã cài đặt giống nhau rồi bạn.

                  Comment


                  • #10
                    sao không có bài nào viết về lm3s1968 nhỉ.....em đang nghiên cứu con này.....

                    Comment

                    Về tác giả

                    Collapse

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

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

                    Collapse

                    Đang tải...
                    X