tạo sóng Sin bằng PIC và R2R ladder
Mình mới lần đầu tiên làm quen với PIC và được ra bài tập phải tạo sóng Sin bằng PIC 18f46k20 và sử dụng thang điện trở R2R.
mạch thì mình đã tạo xong. Nhưng code thì viết nhưng ko cho ra kết quả mong muốn.
các bạn có thể xem wa và giúp mình được ko ?
đoạn code mình viết :
void main (void)
{
int i, j, x;
float k;
overlay unsigned char value[256];
TRISB = 0b00000000; // PORT B to output
LATB=0;
for (i=0;i<255;i++)
{ value[i]= 128*i/255; //tạo ra một array chứa giá trị Sin
}
while (1)
{
for(j=0;j<255;j++)
{
k=256*((sin((float)j/255*2*3.14159)+1)/2); //tạo giá trị Sin
LATB=k;
for (x=0;x<255;x++){ //so sánh với array
if(k>=value[x] && k<=((value[x]+value[x+1])/2))
{k=value[x];
break;}
else if (k<=value[x+1]&&k>=((value[x]+value[x+1])/2))
{k=value[x+1]; break;}
}
LATB=k;
Delay10TCYx(0.1);
}
}
}
|