Thông báo

Collapse
No announcement yet.

Thảo luận về ARM LPC 2138/2148

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

  • Cảm ơn anh hbaocr

    Cuối cùng thì nhờ anh Hbaocr + Help của Keil RV thì em cũng làm đc UART (hic ko có nó làm mấy cái Timer, Counter, ADC sau này biết thế nào ).
    Kết quả đơn giản hơn em nghĩ nhiều. Sau đây em xin trình bày chút xíu cái fault này cho các bạn học ARM sau này dùng RV mà đọc phải các tài liệu hướng dẫn dùng CARM:
    - Dùng UART cứ đọc sơ sơ Datasheet của LPC (em dùng LPC mà) để biết khái niệm chút (còn nếu ai lười thì chuyển bước tiếp theo cũng ko sao)
    - Đọc tài liệu ARM, các tut viết về UART, có thời gian thì nghiên cứu nó 1 chút, cũng dễ hiểu thôi, ko thì copy hoàn toàn đoạn code của họ vào (ko biết có vi phạm bản quyền ko nhỉ ).
    Quan trọng là nếu các hàm truyền nhận là putchar(), getchar() thì phải đổi tên lại thành:
    putchar() --> sendchar()
    getchar() --> getkey()
    - Cuối cùng bạn add thêm file "retarget.c" trong thư mục của Keil RV vào hình như là Keil/ARM/Startup, cuối cùng dùng các hàm của thư viện Stdio.h như bình thường.

    Em có đọc trên net một số chỗ, nếu các hàm putchar(), getchar() này viết cho thiết bị ngoại vi nào thì printf() sẽ send ra cho thiết bị ngoại vi đó. Do đó nó khá thuận tiện, ai thích thì có thể viết lại gửi ra LCD, thiết bị khác ngoài UART.
    Chúc anh em chủ nhật vui vẻ.

    Comment


    • Xin mấy bác chỉ em sử dụng ngắt của con LPC2103 với. Mò hoài nhưng vẫn chưa được.
      Em muốn sử dụng ngắt của UART0, chỉ sử dụng ngắt Rx thôi, khi nhận được 1 ký tự từ bàn phím thì ngắt xảy ra. trong CT phục vụ ngắt thì gửi lại ký tự đó lại cho UART0. Sau đây là các CT con và CT chính em viết:
      * uart.c
      Code:
      #include 	"uart.h"
      #include	"lpc210x.h"
      
      
      unsigned char	UARTInit	(unsigned int baudrate)	//config for UART0 
      {
      	        unsigned int	Fdiv;
      
                      UART0_LCR 	= 	0x83;
      		Fdiv		        =	(15000000 / (16 *baudrate)) ;
      		UART0_DLM	=	Fdiv / 256;
      		UART0_DLL	=	Fdiv % 256;
      
      	        UART0_LCR 	= 	0x03;	//disable acess to divisor latch reg
      		UART0_FCR 	=	0x07;	// Enable and reset TX and RX FIFO.
      
      		UART0_IER 	=	0x01;
      		VICVectAddr6 = (unsigned int)UART_ISR;
      		VICVectCntl0 = 0x26;
      		VICIntEnClr = 0xFFFFFFFF;
      		VICIntEnable = 	(1 << 6);
      		return	1;
      	
      }
      
      
      
      
      unsigned char	UARTIsDataReady ()
      {
      	        if	(UART0_LSR & 0x01) return 1;
      		else	return	0;
      }
      
      void	UARTPutChar (unsigned char character)
      {
      	while (!(UART0_LSR & 0x20)) ;
      	UART0_THR = character;
      }
      
      
      unsigned char	UARTGetChar ()
      {
      	while (!UARTIsDataReady(0));
      	return	UART0_RBR;
      }
      
      void UART_ISR (void)
      {
      	UARTPutChar(UARTGetChar(0));
      	?????????          // chỗ này phải có lệnh gì giống RETI bên 89C51 nhảy về CT được đúng không các bác
      }
      *uart.h
      Code:
      unsigned char		UARTInit (unsigned int baudrate);
      void	UARTPutChar (unsigned char	character);
      unsigned char		UARTGetChar ();
      unsigned char		UARTIsDataReady ();
      extern void UART_ISR (void) __attribute__ ((interrupt("IRQ")));
      *main.c
      Code:
      Initialize();
      PINSEL0 = 0x00000005;
      FIODIR0 = 0x01;
      UARTInit (9600);
      
      while (1)
      	{
      
      	}

      Comment


      • Bác nào biết dùng ngắt UART cho lpc2103 chỉ dùm em với...Thank

        Comment


        • Nguyên văn bởi hongtam Xem bài viết
          Bác nào biết dùng ngắt UART cho lpc2103 chỉ dùm em với...Thank
          hehe gửi bạn nguyên ổ luôn nè! Interrupt UART
          good luck
          Attached Files

          Comment


          • Trong Key Feature của ARM LPC2138 có ghi ISP-In System Programming wiith on-chip Bootloader. Điều này có nghĩa là ta ko cần dùng mạch nạp riêng mà chỉ cần dùng chương trình Flash LPC2000 và nạp qua bộ USART của chip là được hả các bác
            Last edited by apple; 12-09-2009, 16:30.
            Mấy ai định nghĩa được tình yêu.
            Có gì đâu một buổi chiều.
            Kề dao lên cổ yêu hay chết .
            Gật đầu cái rụp thế là yêu.

            --------
            Apple

            Comment


            • Nguyên văn bởi apple Xem bài viết
              Trong Key Feature của ARM LPC2138 có ghi ISP-In System Programming wiith on-chip Bootloader. Điều này có nghĩa là ta ko cần dùng mạch nạp riêng mà chỉ cần dùng chương trình Flash LPC2000 và nạp qua bộ USART của chip là được hả các bác
              uh; kô cần mạch nạp!!!! cắm cổng COM vô là nạp! nhớ chuyển mức RS232 bằng MAXX232 nhé!

              Comment


              • Up luôn cho các bạn code của mudole SPI của LPC2103
                Attached Files

                Or call me 0903911109

                Comment


                • Em dùng LPC2124 muốn giao tiếp với LCD 16x2 nhưng em băn khoăn là MCU hoạt động ở mức điện áp 3.3V còn LCD thì 5V liệu có giao tiếp được không ?
                  mong mọi người giúp !

                  Comment


                  • Nguyên văn bởi thienlong198 Xem bài viết
                    Em dùng LPC2124 muốn giao tiếp với LCD 16x2 nhưng em băn khoăn là MCU hoạt động ở mức điện áp 3.3V còn LCD thì 5V liệu có giao tiếp được không ?
                    mong mọi người giúp !
                    Kết nối vô tư bạn ah

                    Comment


                    • help?
                      E đang tìm hieu về module phím capsens,dùng LPC 2148,nhung ngõ ra ADC thieu,vay co cach nao de tao ra nhieu ngo ra adc tu mot hoac nhieu chan cua LPC ko/

                      Comment


                      • Nguyên văn bởi hoangdieupro Xem bài viết
                        help?
                        E đang tìm hieu về module phím capsens,dùng LPC 2148,nhung ngõ ra ADC thieu,vay co cach nao de tao ra nhieu ngo ra adc tu mot hoac nhieu chan cua LPC ko/
                        dùng IC analog SW :HCT4051 :
                        1 kenh ADC + 1 con IC 4051+3 GPIO= 8 ADC chanel input

                        Comment


                        • Nguyên văn bởi kamejoko80 Xem bài viết
                          PINSEL0, PINSEL1, PINSEL2 dùng cho việc cấu hình chức năng cho PORT0.
                          PINSELx không thấy đề cập cho PORT1, có lẽ khi reset LPC thì PORT1 được cấu hình thành GPIO rồi. Bạn hãy thí nghiệm bằng cách xuất giá trị ra PORT1, gắn vào dãy LED kiểm tra thì sẽ rõ.
                          hình như anh K nhầm chỗ này rùi. PINSEL0 và PINSEL1 dùng cho PORT0 còn PINSEL2 dùng cho PORT1 mà anh.cụ thể:
                          bit 2 (GPIO/DEBUG): =0: P1.26-P1.31 là GPIO,=1 thì dùng cho Debug
                          bit 3(GPIO/TRACE):=0: P1.16-P1.25 là GPIO,=1 thì dùng cho Trace
                          chúc vui
                          All in one. Sài Gòn + Đồng Nai.

                          Comment


                          • em dung KeilC de dịc thi minh xai duoc lenh printf ko vay cac pac? em dung no ma sao bao loi hoai a? mong cac cao thu chi giao

                            Comment


                            • thì mình trả lời về printf trong keil C
                              KIEL C hiện nay có 2 loại :
                              1.version 3.05 trở xuống (vd ver 3.24 ,3.01a..) sử dụng complier là CARM ( của hitech).Véion nay ko còn đc keil tiếp tục support nữa. khi sử dung printf thi ngaoi viec include "stdio.h" thì fai viet thêm 2 cái hàm getchar và putchar như hương dẫn ở những page trước!
                              2.version 3.05 trở lên ( vd ver 3.11, 3.22 ....) :sử dụng complier mới là realview(hình như của ADS thì phải hok nhớ rõ).Version này đang dc support.bạn down keil trên mạng ở keil.com thì là bản này dùng RV. khi sử dung printf thi ngaoi viec include "stdio.h" thì fai làm như hướng dẫn ở bài trên.
                              good luck

                              Comment


                              • cho minh hoi: che do Fast GPIO va Slow GPIO khac nhau nhu the nao? khi nao nen dung Fast GPIO? em thay toan xai Slow GPIO ko a nen thiet nghi fai co muc dich j do nguoi ta moi thiet ke vay? mong thinh giao cac pac.

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X