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.
13bit :time đếm đến 8192 thì tràn.
16bit:time đếm đến 65356 thì tràn.
bạn muốn biết chính xác hay không lên chạy trên mạch thật.ngoài ra sai số của thạnh anh cũng là nguyên nhân.
không khời tạo TMOD=00
Mình tìm ra chỗ sai rồi, bây giờ thì text chạy thử chính xác đến micro giây luôn! Mô phỏng proteus chính xác thật, chưa bao giờ thấy nó sai toàn thấy mình sai
- Dùng C hay Assembly language đều cần phải biết rõ về cấu trúc của VĐK. Nếu không rành về cấu trúc VĐK, biết rõ C hay không cũng đều là vô dụng...
.
Tôi hoàn toàn nhất trí với bạn Paddy. Ở đây tôi chỉ đưa ra 1 sự so sánh đơn giản để các bạn mới nhập môn có thể tự chọn con đường đi phù hợp với mình hơn.
Tôi cũng muốn bổ sung 1 chút xíu là nếu các bạn bắt đầu với C dành cho VĐK (ko phải C tổng quát) thì sẽ dễ dàng hơn ASM rất nhiều, và cũng ko sợ học những thứ dư thừa hay phức tạp. Bởi vì C dành cho VĐK chỉ bằng khoảng 1% C tổng quát, gồm những phép tính và hàm dành cho VĐK thôi.
Lựa chọn ngôn ngữ nào là tùy ở mục đích và sức lực hiện tại của các bạn.
Vi dụ điển hình nhất trong lập trình VXL
void delayms(int n)
{
int i,j; // khai bao bien chi trong chuong trinh con
for (i=0;i<n;i++)
for (j=0;j<1500;j++) { } // tham so j tuy thach anh toc do vxl ma cac
//ban thay doi cho phu hop
}
em đọc được vd này trên mạng nhưng em chưa hiểu cách tính " j " như thế nào ?
(sao lai là nhỏ hơn 1500 ?)
Xin trả lời như sau:
Biến j chỉ đơn giản là biến đếm thôi.
Khi thực hiện phép tính j=j+1 (trong C viết là j++) thì VXL tốn 1 khoảng thời gian bằng 1 bước thời gian của VXL(gọi là chu kỳ máy).
Ví dụ nếu tần số làm việc của VXL là 1MHz, nghĩa là 1 triệu phép tính/giây, thì mỗi phép tính tốn 1 phần triệu giây.
Nếu thực hiện 1500 phép tính thì VXL tốn 0.0015 giây.
Mỗi vòng lặp FOR tốn 2 phép tính. Vậy nếu 1500 vòng lặp FOR thì tốn 3000 phép tính, và VXL tốn 0.003 giây để thực hiện hết số vòng lặp này.
Để tìm ra số vòng lặp cần thiết khi đã biết thời gian tiêu tốn và tần số của VXL, bạn chỉ cần làm bài toán ngược.
Gọi thời gian là t, tần số là f, số phép toán thực hiện được là n, số vòng lặp là m, ta có công thức tính như sau:
n = t/f
m = n/2
vòng lặp FOR của ta khi đó sẽ viết có dạng:
for (j=0; j<m; j++) { }
Ở đây tôi hướng dẫn cụ thể để các bạn dễ hiểu. Quen dần thì các bạn sẽ tính nhẩm rất nhanh, ko cần phải qua các thao tác trên.
Chúc vui !
Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
Comment