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 .
Theo tôi thì khi hpj sản xuất ra cái loa đó, đã có nhiều chuyên gia kỹ thuật hiệu chỉnh, tính toán các phần tử kỹ lưỡng rồi.
Bây giờ tính toán hiệu chỉnh lại cần có đội ngũ tương đương với nhà sản xuất.
Cách đơn giản...
Vấn đề cũ: khi in mạch ra pdf và bấm chọn Keep Drill Holes Open, in ra thì pdf trắng đen các lỗ chân linh kiện như nhau. Mặc dù có linh kiện phần Drill là 1mm, có linh kiện thì là 3mm. Cho em hỏi cách sửa phần này ở Orcad 9.2 với ạ.
Mấy con...
Dạ cháu có ý tốt muốn động viên chú ấy ngâm cứu khoa học thôi ạ. Về phần kiểm tra dao động thì chú ấy chưa biết thì sẽ tìm hiểu được là cần những gì ạ, chắc chắn là khi hướng dẫn phần ấy các cô chú nào đó sẽ lưu ý cần loại sò công suất ra tránh cháy nổ rồi ạ....
Loa bass đấu trực tiếp không qua phân tần để thành loa toàn dải xem có thoát tiếng khộng , nếu không thoát cần phải sửa lại mạch cs hay âm sắc nếu đủ trình còn nếu thoát ca hay nhưng chưa vừa ý vì bass kém chăc thì đấu lại như cũ và đấu thêm loa mid treble bên ngoài .
Chuyện là mình mới đập hộp con loa kéo Sony SRS-XV900. Do khu vực mình k có sẵn hàng để trải nghiệm thực tế nên chỉ tham khảo các kênh revew online.
Mua về sử dụng thì thấy hơi buồn về chất âm, Mở max k to bằng cái loa kéo china, bass...
Comment