전자 카드 (8051 마이크로 컨트롤러가있는 Atmel 카드)에있는 포트가 있습니다. 이 포트 이름은 p3_0입니다. 포트는 '1'또는 '0'논리를 얻습니다.주파수를 읽는 방법을 알아야합니다.
1 0 1 0
''''''' ''''''''
' ' ' '
' ''''''' '''''' And so on....
저는 8051 (실제로는 원래의 C입니다)에 C를 사용해야하고 빈도를 알 수있는 코드를 작성해야합니다. 마침내 나는 단지 char array[];
을 인쇄하는 것으로 알고있는 LCD에 그것을 인쇄 할 필요가 있기 때문에 char 배열로 주파수가 필요합니다. int number, 'count'를 char array [];
으로 변환하는 "itoa"함수를 사용합니다. 주파수는 16Hz에서 90Hz 사이 일 수 있습니다.
이 내가 무슨 짓을 :
void main(void)
{
init_lcd()///Print command
;print_lcd(1,"The Project"); //Print command
;print_lcd(2,"is starting:"); //Print command
for(i=0; i<20; i++){delay(1000);delay(1000);delay(1000);}
for(i=0; i<20; i++){delay(1000);delay(1000);delay(1000);}
while(1)
{
count = 0;
while(P3_0 == 1)
{
count ++;
init_lcd() //Print command
;print_lcd(1,"Counting..."); //Print command
for(i=0; i<1; i++){delay(1000);delay(1000);delay(1000);}//delay...
}
init_lcd()///Print command
;print_lcd(1,"Done Counting!"); //Print command
for(i=0; i<1; i++){delay(1000);delay(1000);delay(1000);}
;print_lcd(2,itoa(count)); //Print command
for(i=0; i<20; i++){delay(1000);delay(1000);delay(1000);}
for(i=0; i<20; i++){delay(1000);delay(1000);delay(1000);}
}
}
아이디어는 내가 포트를 확인하고 내가 때마다 자사의 '1'을 계산이다. 마지막으로 나는 모든 '1'이 세어지고 (주파수가 무엇인지를 계산하는) 시간을 결정할 것입니다.
질문 : 주파수가 정확히 얼마나되는지 정확히 알 수 있습니까?
"주파수에서 가져 가라."라고 계산할 때 달 레이가있는 것도 있습니다. 어떻게 해결할 수 있습니까?
여기에 코드를 입력 해 주신 모든 분들께 감사드립니다 !! 정말 도움을 주셔서 감사합니다!, 고맙습니다!
답변이 있으십니까? 부디?! –