Nếu đây là lần đầu tiên đến với Điện Tử Việt Nam, bạn có thể đọc phần Hỏi đáp bằng cách nhấn vào liên kết. Có thể bạn cần đăng kí trước khi có thể gửi bài . Để bắt đầu xem bài viết, chọn diễn đàn bạn muốn thăm dưới đây.
Cứ set_tris_x, output_x mà viết vừa đơn giản mà không lo sai. Viết trực tiếp tên thanh ghi cần phải định địa chỉ. Địa chỉ này mỗi dòng một khác, nếu định sai sẽ hoạt động sai. Tốt nhất là cứ cấu trúc có sẵn của CCS mà viết. Còn về chức năng, lợi hại thì là như nhau.
Cứ set_tris_x, output_x mà viết vừa đơn giản mà không lo sai. Viết trực tiếp tên thanh ghi cần phải định địa chỉ. Địa chỉ này mỗi dòng một khác, nếu định sai sẽ hoạt động sai. Tốt nhất là cứ cấu trúc có sẵn của CCS mà viết. Còn về chức năng, lợi hại thì là như nhau.
Nếu để đánh giá về chức năng, lợi hại thì cũng có thể nó cũng khác nhau đấy bạn ạ.
Giả sử nếu viết định nghĩa trước
#byte TRISA =0x85
#byte TRISB =0x86
#byte TRISC =0x87
#byte TRISE =0x89
#byte PORTA =0x05
#byte PORTB =0x06
#byte PORTC =0x07
Thì khi viết TRISB=0x00; PORTB=0xff;
hay RA1=1; RA1=0;
RB3=1;RB3=0;
RB4=1; RB4=0;
RB5=1; RB5=0;
RB6=1; RB6=0;
RB7=1; RB7=0;
Mỗi lệnh này dịch sang ASEM sẽ tiết kiệm 1 lệnh đấy và tuơng ứng là một ô nhớ he he
Thử mà xem nha!!!!!
Nếu để đánh giá về chức năng, lợi hại thì cũng có thể nó cũng khác nhau đấy bạn ạ.
Giả sử nếu viết định nghĩa trước
#byte TRISA =0x85
#byte TRISB =0x86
#byte TRISC =0x87
#byte TRISE =0x89
#byte PORTA =0x05
#byte PORTB =0x06
#byte PORTC =0x07
Thì khi viết TRISB=0x00; PORTB=0xff;
hay RA1=1; RA1=0;
RB3=1;RB3=0;
RB4=1; RB4=0;
RB5=1; RB5=0;
RB6=1; RB6=0;
RB7=1; RB7=0; Mỗi lệnh này dịch sang ASEM sẽ tiết kiệm 1 lệnh đấy và tuơng ứng là một ô nhớ he he
Thử mà xem nha!!!!!
Chưa hiểu bạn định nói về chỗ nào.
Đâu bạn ơi chỉ trên hình giúp mình lệnh nào ít hơn lệnh nào 1 lệnh ASM ấy nhỉ ?
Chưa hiểu bạn định nói về chỗ nào.
Còn việc tiết kiệm 1 ô nhớ nó không phải điều cần thiết. Điều cần thiết cho người lập trình là thuật toán xử lý tốt, phối hợp ngoại vi chứ không phải viết sao cho nó tốn ít ROM. Hình bên dưới tôi đã test cho bạn. Trong project tôi đã cố tình định địa chỉ PORTB sai và kết quả chắc chắn sẽ sai nhưng sẽ thấy 2 lệnh dùng "output_x" và "PORTX" đều mất 1 lệnh ASM. Còn lệnh "set_tris_x" tốn hơn lệnh "TRISX=" 1 lệnh ASM lý do giá trị 0xFF được lưu khi dùng lệnh "set_tris_x" vẫn được dùng cho lệnh "PORTX=" nên nó không cần lệnh ASM "MOVLF FF". Do vậy dùng 2 cách đều tương đương nhau tuy nhiên rủi ro khi dùng cách định địa chỉ là cao hơn.
Bạn test rồi à. Tiết kiệm một ô nhớ cũng rất quan trọng, tiết kiệm được một dòng ASEM "MOVLF FF". là không mất một lệnh sử lý.
Nói như bạn thì bạn định nghĩa sai mà nó chẳng sai hài quá. Bạn không thấy là dịch file.HEX nó cũng ngọn hơn à.
Còn chuyện ngoại vi thì phải hiểu cấu trúc Chip rùi hãng nói....
Bạn test rồi à. Tiết kiệm một ô nhớ cũng rất quan trọng, tiết kiệm được một dòng ASEM "MOVLF FF". là không mất một lệnh sử lý.
Nói như bạn thì bạn định nghĩa sai mà nó chẳng sai hài quá. Bạn không thấy là dịch file.HEX nó cũng ngọn hơn à.
Còn chuyện ngoại vi thì phải hiểu cấu trúc Chip rùi hãng nói....
Ở trên kia bạn có thấy nó có tiết kiệm được lệnh nào đâu ?
Định nghĩa sai ở đây tôi nói đến việc định địa chỉ sai. Ví dụ PORTB là 0xF82 nhưng tôi đã cố tình đặt nó là 0xF81 tức là của PORTA. Khi Complie sẽ không báo lỗi nhưng khi chạy thì giá trị thay vì gán cho PORTB như trong lập trình thì nó sẽ được đưa ra ở PORTA ở trong thực tế.
Nếu người ta quan tâm đến 1 lệnh xử lý thì có lẽ người ta đã nhắm đến ASM chứ không phải C. Việc hiểu cấu trúc không phải là quá cần thiết với người lập trình. Cái quan trọng là người ta làm được ra cái gì, hiệu năng làm việc của người lập trình là bao nhiêu.
Ví dụ modul UART . Tôi chỉ cần biết là nó truyền dữ liệu nối tiếp qua RX,TX. Tôi đi tìm các hàm setup, các hàm điều khiển, ốp vào, vậy là xong. Chả rỗi hơi đi tìm hiểu thanh ghi, địa chỉ, cấu trúc làm cái gì cho mệt mà chả giải quyết được vấn đề gì.
Nếu cứ đè nặng tư tưởng hiểu cấu trúc như làm với 8051 thì chắc chắn đó sẽ là những trở ngại khi tiếp cận với những loại chip nhiều thanh ghi, modul ngoại vi như các dòng PIC cao hơn, ARM....
Ở trên kia bạn có thấy nó có tiết kiệm được lệnh nào đâu ?
Định nghĩa sai ở đây tôi nói đến việc định địa chỉ sai. Ví dụ PORTB là 0xF82 nhưng tôi đã cố tình đặt nó là 0xF81 tức là của PORTA. Khi Complie sẽ không báo lỗi nhưng khi chạy thì giá trị thay vì gán cho PORTB như trong lập trình thì nó sẽ được đưa ra ở PORTA ở trong thực tế.
Nếu người ta quan tâm đến 1 lệnh xử lý thì có lẽ người ta đã nhắm đến ASM chứ không phải C. Việc hiểu cấu trúc không phải là quá cần thiết với người lập trình. Cái quan trọng là người ta làm được ra cái gì, hiệu năng làm việc của người lập trình là bao nhiêu. Nếu cứ đè nặng tư tưởng hiểu cấu trúc như làm với 8051 thì chắc chắn đó sẽ là những trở ngại khi tiếp cận với những loại chip nhiều thanh ghi, modul ngoại vi như các dòng PIC cao hơn, ARM....
Khi tôi càng lập trình nhiều thì tôi cũng càng muốn một chương trình được tối ưu hơn nữa.
Tối ưu cả về cấu trúc chương trình, lệnh, Ram, Rom............................................... ..
Hiểu cấu trúc mà làm gì trong khi lập trình vẫn chẳng ra gì !
điều quan trọng nhất trong lập trình hiện đại là Ý TƯỞNG và biết cách khai thác sử dụng phần mềm .
Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com
Khi tôi càng lập trình nhiều thì tôi cũng càng muốn một chương trình được tối ưu hơn nữa.
Tối ưu cả về cấu trúc chương trình, lệnh, Ram, Rom............................................... ..
Có lẽ phương châm làm việc 2 ta nó khác nhau
Tôi thì muốn triển khai các thuật toán lớn, lớn nữa. RAM, ROM không quá quan trọng, quan trọng sản phải thật đa năng và thật "khôn".
Có lẽ phương châm làm việc 2 ta nó khác nhau
Tôi thì muốn triển khai các thuật toán lớn, lớn nữa. RAM, ROM không quá quan trọng, quan trọng sản phải thật đa năng và thật "khôn".
Ừ có con PIC nó khôn và cũng có con nó bình thường, nhưng người khôn thì biến con bình thường thành con gần khôn mà người ng ng thig biến con khôn thành con ng ng....
Có lẽ phương châm làm việc 2 ta nó khác nhau
Tôi thì muốn triển khai các thuật toán lớn, lớn nữa. RAM, ROM không quá quan trọng, quan trọng sản phải thật đa năng và thật "khôn".
MCU đã qua rồi cái thời giá rom đi đôi với giá tiền ! không sợ thiếu ROM , Chẳng sợ thiếu RAM ... chỉ sợ sản phẩm bị ế !
Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com
Nói chung là 2 trường phái này luôn là xung đột với nhau và Complier cũng theo 2 trường phái đó ví dụ MikroC, CCS và Hitech C. Bàn luận nhiều chỉ thành cãi vã. Ai khôn nhiều, ai khôn ít thì chính những sản phẩm, những project của họ là câu trả lời chân thực nhất.
PS ngoài luồng : Bây giờ MCU rẻ, RAM, ROM nhiều, có những con tới 256KB ROM và nhiều hơn nữa chỉ sợ không có sức mà viết thôi. Tối ưu hóa chương trình vẫn là vấn đề cần quan tâm nhưng chỉ là thứ 2,3... với tôi là vậy
Chúc vui .
Trong bối cảnh Khách hàng B2B ngày càng kỳ vọng vào trải nghiệm mua sắm liền mạch, cá nhân hóa và khả năng tương tác theo thời gian thực, việc Doanh nghiệp áp dụng phần mềm quản lý đơn bán hàng B2B trở thành yếu tố quan trọng để đáp ứng nhu cầu của thị trường. Tuy nhiên, làm sao để DN có thể...
Trong bối cảnh Khách hàng B2B ngày càng kỳ vọng vào trải nghiệm mua sắm liền mạch, cá nhân hóa và khả năng tương tác theo thời gian thực, việc Doanh nghiệp áp dụng phần mềm quản lý đơn bán hàng B2B trở thành yếu tố quan trọng để đáp ứng nhu cầu của thị trường. Tuy nhiên, làm sao để DN có thể...
Xem video hình như bác vẫn dùng jumper để chuyển đổi điện áp? Chưa hiểu bác mod lại thế nào. Mạch này xài pin nên chắc cần hiệu suất cao, nếu autovolt thì theo bác tổn hao thêm bao nhiêu là chấp nhận được?
Giải pháp quản lý Đơn bán hàng B2B là giải pháp công nghệ giúp các DN quản lý toàn bộ quy trình tiếp nhận, theo dõi và thực hiện các đơn hàng từ Khách hàng B2B. Công cụ này cho phép DN xử lý khối lượng đơn hàng lớn, quản lý các chính sách giá...
Đùa với bác tí thôi vì lâu rồi mình cũng không vào diễn đàn vì thấy chán. Dù sao cũng cảm ơn bác đã đưa ra các bài toán thực tế để anh em có sự động não không hề nhẹ.
Xem video bác gửi em vẫn chưa hiểu nó nói về cái gì...
Chào bạn ti500, cảm ơn bạn đã dẫn dùm link [mình muốn dẫn link đó mà ... không nhớ gì nhiều về nó!]
Mạch mà ĐT đề nghị người ta cải tiến để đáp ứng yêu cầu/khắc phục vấn đề như đã mô tả là mạch pin sạc ở trong cái nắp vỏ có hình đính kèm ấy, sơ đồ mạch đó là sơ đồ rất nhiều...
Comment