Trích:
char temp[1]; mà nó vẫn không chạy ; Không chạy ở đây là : Hyper terminal không detect được tốc độ truyền và định dạng truyền, em truyền 1 kí tự từ bàn phím , sau 2s hoặc lâu hơn em nhấn bàn phím 1 lần mà không thấy kết quả. em cảm ơn thấy ! Trân trọng !. |
Trích:
tạo một tập tin header nữa (ex: UartHeader.h), trong tập tin này có #Include LCD.c; Và trong file mã nguồn (UART.c) em dung lệnh #include UartHeader.h ??? Em mới học VB còn C thì em đang học thầy ạ, nên có nhiều câu hỏi hơi "NGỖ" mong thầy thông cảm. Em cảm ơn! Trân trọng !. |
Trích:
Nếu bạn định nghĩa biến temp như trên thì temp tương thích với hàm lcd_putstr(), nhưng khi bạn dùng lệnh gán giá trị của U1RXREG vào temp thì kết quả sẽ khác với sự mong đợi của bạn (vì temp sẽ giống như một con trỏ, và giá trị của nó sẽ bị thay đổi, chứ không phải là nội dung của ô nhớ mà nó trỏ tới sẽ bị thay đổi). Thân, |
Trích:
Nếu bạn đang học C, bạn có thể đem những vấn đề này ra hỏi thầy dạy của bạn. Nếu bạn vẫn không nắm được vấn đề, đề nghị bạn tìm đọc một tài liệu hướng dẫn lập trình căn bản cho C. Vì đây là diễn đàn về PIC/dsPIC, tôi chỉ hướng dẫn những vấn đề liên quan đến PIC/dsPIC (trong tầm hiểu biết của tôi), và tôi không có ý định hướng dẫn sử dụng các ngôn ngữ lập trình cấp cao. Thân, |
Trích:
void Init_UART1_Module(void) Thầy lại config thanh ghi U1MODE là U1MODE = 0x8000; Em nghĩ phải là U1MODE = 0x8400; chứ thầy? Em cảm ơn! Trân trọng!. |
Trong TUTO về I2C (vidu4.3) thầy có dùng các lệnh sau em không hiểu lắm: (chố em không hiểu em có comment ở ngay sau lệnh) mong thầy nói rõ cho em với :
Wait_I2C(); //trong hàm này thầy dùng cờ ngắt là _MI2CIF vậy sao thầy //không set bit enable _MI2CIE trong hàm void Init_PORTS(void)? Send_I2C(0xD0);//tại sao đây là dịa chỉ của ds1307 số khác được khôngthầy ? Send_I2C(0x67); // trước khi ghi vào REG 02 của RTM thì phải gửi điạ //chỉ chứ (giống như các lệnh thao tác //trên //REG01?? con số hex 67 có nghĩa gì ?) Send_I2C(0x01); //Xuat số con số 01 nầy là chỉ Thứ 2 của tuần phài //không ? Send_I2C(0x25); //Xuat noi dung cua thanh ghi 0x04 (dem ngay) Send_I2C(0x08); //Xuat noi dung cua thanh ghi 0x05 (dem thang) // hai số hex 25 và 08 có nghĩa gì? em cảm ơn ! Trân trọng !. |
Trích:
Thân, |
Trích:
Địa chỉ 0xD0 của DS1307 là do nhà sản xuất vi mạch DS1307 quy định, nếu không dùng đúng giá trị này thì DS1307 sẽ không đáp ứng với các yêu cầu đã được gửi ra bus I2C. Những vấn đề liên quan đến các câu hỏi còn lại của bạn đều được mô tả trong datasheet của DS1307, đề nghị bạn đọc nó. Những thông tin điều khiển gửi đến một vi mạch ngoài PIC cần tuân thủ những yêu cầu đã đề ra trong datasheet của vi mạch đó. Thân, |
Thầy Nam có thể cho em sơ đồ mô phỏng trên Proteus cua tutorial này không?
Trích:
|
Trích:
Thân, |
void Init_TMR1(void)
{ TMR1 = 0; //Xoa so dem trong TMR1 PR1 = 0x7A12; //Nguong tran la 1 giay tuong ung voi clock = 32 MHz _T1IF = 0; //Xoa co ngat cua Timer 1 T1CON = 0x8030; //Dung fcy lam clock, prescale = 1:256 _T1IE = 1; //Cho phep ngat khi Timer 1 tran } Theo em nghĩ là bộ đếm sẽ đếm giá trị từ PR1 đến giá trị 65535, khi vượt qua giá trị này sẽ tạo ngắt Timer1. Anh Nam đặt giá trị 7A12 vào PR1 liệu đã tạo ra ngắt đúng 1giây không ? |
Trích:
Trân trọng! à mà dạo này Picvietnam thấy sa sút qua thầy Nam ơi ! |
Anh Nam cho em hỏi. Em khai báo _FBORPOR(PBOR_OFF & MCLR_EN); thì truyền lên PC rất nhiễu. Nhưng khi khai báo _FBORPOR(PBOR_OFF & MCLR_DIS); thì lại truyền rất chuẩn. Anh có thể nêu qua 2 khai báo này được không ạ?
Thanks, |
Em có 1 vấn đề về phần cứng. Em làm mạch đo nhiệt độ, hiển thị lên LCD và gửi lên máy tính. Phần đo nhiệt độ và hiển thì lên LCD thì ok, nhưng cứ khi em cắm COM vào mt thì mạch lại ko làm việc nữa, chip thì nóng lên. Em thử ktra các chân của Max232 và com thì thấy bình thường, thậm chí, cắm com nhưng ko cắm lên máy tính thì mạch cũng ko sao, vẫn bình thường. Em thử cắm sang nhiều máy tính khác thì nó cũng ko chạy, theo mọi người thì lỗi ở đâu nhỉ ?
|
Trích:
|
Múi giờ GMT. Hiện tại là 04:39 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam