Thứ Ba, 12 tháng 6, 2018

Published tháng 6 12, 2018 by Nặc danh with 0 comment

[PIC 16F877A] Thực hiện tác vụ song song bằng hàm delay


Yêu cầu của một bài toán : Có 3 led đơn , led 1 sáng tắt với chu kỳ 10ms , led 2 sáng tắt với chu kỳ 100ms, led 3 sáng tắt với chu kỳ 350ms . Hướng giải quyết : không thể dùng ngắt timer nếu bài toán với nhiều IO hơn, do đó thực hiện bằng một hàm con tạo delay nếu sau mỗi khoảng thời gian khớp với chu kỳ củ 1 tác vụ thì thực hiện tác vụ yêu cầu đó thông qua lệnh điều kiện if
#include "main.h"
#define led1 PIN_D0
#define led2 PIN_D1
#define led3 PIN_D2
void main()
{
while(1)
{
int16 t1=0,t2=0,t3=0,z;
for(z=0;z<350 delay_ms="" if="" t1="" t2="" t3="" z="">10)
{
output_toggle(led1);
t1=0;
}
if(t2>100)
{
output_toggle(led2);
t2=0;
}
if(t3>=350)
{
output_toggle(led3);
t3=0;
}
}
}
}

Đo dạng sóng của analog :

Màu xanh blue thể hiện chu kỳ 10ms Màu đỏ thể hiện chu kỳ 100ms Màu xanh Green thể hiện chu kỳ 350ms Chúc các bạn học tốt
      edit

0 nhận xét:

Đăng nhận xét