VicoTas
Câu hỏi
avatar hitek
26/05/2013 10:16

Xin hỏi một số vấn đề về điều khiển hệ thống tự động bằng máy tính?

Xin hỏi một số vấn đề về điều khiển hệ thống tự động bằng máy tính:

- Cách xác lập thời gian thực trong Windows? Cách xác định khoảng thời gian nhỏ hơn 1ms?

- Khi chèn một đoạn hợp ngữ vào giữa một chương trình viết bằng C++ thì ta có phải lưu lại nội dung của các thanh ghi để trả về sau đoạn hợp ngữ hay trình biên dịch tự làm việc này?

- Xin hướng dẫn một số chương trình trao đổi thông tin qua các cổng (COM, cổng máy in) của máy tính.

Danh sách câu trả lời (1)
avatar bembem 26/05/2013 10:16
- Bạn không nói rõ "xác lập thời gian thực" cụ thể để làm gì nên chúng tôi không thể trả lời chính xác cho bạn được. Chúng tôi chỉ lưu ý với bạn, Windows không phải là HĐH thời gian thực đúng nghĩa (real-time OS), tuy nhiên ta vẫn có thể dùng Windows để giải quyết 1 số chức năng chưa cần mức độ real-time quá khắt khe, thí dụ ta vẫn có thể record/play các thông tin audio/video, điều khiển các thiết bị I/O có tốc độ làm việc tương đối chậm... Để giải quyết các chức năng "real-time" này, bạn có thể gọi hàm API như SetPriorityClass() và SetThreadPriority() để thiết lập quyền ưu tiên cho thread liên quan có độ ưu tiên cao nhất (real-time). Chi tiết về các hàm API này được trình bày trong MSDN của Microsoft.

- Các hàm API của Windows liên quan đến timer đều dùng Int 8 làm cơ sở đo lường, mà Int 8 xảy ra với tần số 18.2Hz, nghĩa là có độ phân giải khoảng 55ms, như vậy quá kém chính xác so với yêu cầu của bạn. Để đo khoảng thời gian khá nhỏ (nhỏ hơn 1ms), thường ta phải dùng dịch vụ VTC (Virtual Timer Device), dịch vụ này có thể cho độ phân giải khoảng 0.8 microsecond). Để biết thông tin chi tiết, cụ thể về việc dùng dịch vụ VTC, bạn nên đọc trang Web "Timer2.exe - Timers and Timing in Microsoft Windows" trong CD MSDN của Microsoft.

- Không thể khẳng định được điều gì cả, thường thì chương trình dịch sẽ tự quản lý nội dung các thanh ghi CPU giữa các đoạn lệnh assembly và C++ xen kẽ nhau để tránh gây lỗi. Tuy nhiên nếu bạn là người cẩn thận, trước các đoạn lệnh assembly bạn nên thêm 1 số lệnh push để cất các thanh ghi được dùng trong đoạn lệnh assembly đó, rồi sau khi đoạn lệnh assembly chạy xong, bạn viết thêm 1 số lệnh pop để phục hồi lại giá trị cũ của các thanh ghi.

- Do nhu cầu giao tiếp giữa máy tính với thiết bị I/O qua cổng COM rất phổ biến nên Microsoft đã xây dựng sẵn linh kiện "Microsoft Communications Control", linh kiện này cung cấp 1 tập các hàm liên quan đến việc giao tiếp thông qua cổng COM. Bạn có thể đọc thông tin chi tiết về nó trước khi dùng trong MSDN của Microsoft.
Trả lời câu hỏi
Tải lại mã
Câu hỏi lĩnh vực Phần cứng
nophoto Cách thức để tìm ra lỗ hổng bảo mật và cách thức tấn công?

Đăng lúc: 10:16 - 26/05/2013 trong Phần cứng

Nguyễn Văn Siêu Hiện trên thị trường có bán đĩa CD 700MB nhưng dữ liệu ghi trên đó lên tới 2.93GB. Vậy xin hỏi làm cách nào để ghi được đĩa CD có dung lượng lớn vậy?

Đăng lúc: 10:16 - 26/05/2013 trong Phần cứng

nophoto Xin hướng dẫn thực hiện một chương trình có thể chạy các chương trình khác trên đĩa CD (hoặc đĩa mềm) mà không cần đĩa cứng (chạy HĐH DOS)?

Đăng lúc: 10:16 - 26/05/2013 trong Phần cứng

Hoài Nam (Nam Tước) Máy AMD K6-400 , 64 MB RAM, CD-ROM ASUS 36x. Xin hỏi cấu hình máy có tương thích để cài LinuxVN và các ứng dụng không?

Đăng lúc: 10:16 - 26/05/2013 trong Phần cứng

nophoto Máy có 2 ổ đĩa, ổ đĩa C hoạt động bình thường, khi sử dụng các chương trình như scandisk, norton utilities.thì không scan được ổ D?

Đăng lúc: 10:16 - 26/05/2013 trong Phần cứng

Mạnh Linh CPU khi gắn máy in vào thì có điện và bị giật, tuy dòng điện không mạnh, thật bất tiện. Xin chỉ cách khắc phục?

Đăng lúc: 10:15 - 26/05/2013 trong Phần cứng

nophoto HDD chia partition dùng cluster kích thước 2KB có truy cập chậm hơn so với dùng 4KB không?

Đăng lúc: 10:15 - 26/05/2013 trong Phần cứng

nophoto Khi khởi động máy, chương tình báo “XMS driver not installed. Serious hardware problem, halting boot”, và không vào được CMOS?

Đăng lúc: 10:15 - 26/05/2013 trong Phần cứng

Đức Vân Ram DDR2 KINGMAX 2GB dùng có tốt không?

Đăng lúc: 10:15 - 26/05/2013 trong Phần cứng

nophoto Hình thức thanh toán tiền khi mua hàng trên mạng..?

Đăng lúc: 10:15 - 26/05/2013 trong Phần cứng

nophoto Sao ko thấy driver Much TV PCI FM PT208

Đăng lúc: 10:15 - 26/05/2013 trong Phần cứng

nophoto Máy báo có ổ CD-Rom nhưng bỏ đĩa CD vào thì nó không chạy, nhấn vào ổ CD-Rom thì bị báo lỗi: "The device is not ready..."?

Đăng lúc: 10:15 - 26/05/2013 trong Phần cứng

nophoto Máy tính tôi trước đây vẫn có thể nghe được CD, nhưng sau khi format đĩa cứng, cài lại WinME thì không nghe được nữa?

Đăng lúc: 10:15 - 26/05/2013 trong Phần cứng

nophoto Dùng chương trình Easy CD Creator 5.0 để chép dữ liệu từ HDD lên CD, khi chạy chương trình trên CD thì Windows báo lỗi Kernel32.dll ??

Đăng lúc: 10:15 - 26/05/2013 trong Phần cứng

nophoto Làm sao khắc phục tình trạng đĩa chép thường hay bị rớt từ 1, 2 bài ở đoạn cuối của đĩa CD-R đích?

Đăng lúc: 10:15 - 26/05/2013 trong Phần cứng

Ngô Minh Tùng Máy in Epson của em khi bật lên thì không khởi động được sao vậy ?

Đăng lúc: 10:15 - 26/05/2013 trong Phần cứng

nophoto Tôi muốn hỏi về cài đặt cấu hình và sử dụng điều khiển tắt mở tự động cho sever bằng UPS APC 3000 smart-ups SUA3000i

Đăng lúc: 10:15 - 26/05/2013 trong Phần cứng

nophoto Các bác cho em biết trong dòng chip DUAL CORE trở nên em thấy có công nghệ:EDB+EIST là công nghệ gì vậy?

Đăng lúc: 10:15 - 26/05/2013 trong Phần cứng

nophoto Nhờ các bạn giới thiệu một số tiện ích format cấp thấp (Low Level Format - LLF) đĩa cứng.

Đăng lúc: 10:15 - 26/05/2013 trong Phần cứng

nophoto Cần driver card GADMEI PT208

Đăng lúc: 10:15 - 26/05/2013 trong Phần cứng

Rao vặt Siêu Vip