📄 main.c
字号:
/*************************************************************************************/
#define IN_P_MAIN
#include "CONFIG.H"
#include "p33FJ16GS502.h"
#include "dac.h"
#include "delay.h"
/* -------------------------------------------------------- */
/* Macros for setting device configuration registers */
/* -------------------------------------------------------- */
//_FBS( BWRP_WRPROTECT_OFF & BSS_NO_BOOT_CODE );
_FOSCSEL( FNOSC_FRCPLL & IESO_OFF );
_FOSC( POSCMD_NONE & OSCIOFNC_ON & IOL1WAY_ON & FCKSM_CSDCMD );
_FWDT( FWDTEN_OFF & WINDIS_OFF & WDTPRE_PR128 & WDTPOST_PS32 );
_FPOR( BOREN_ON & FPWRT_PWR4 );
_FICD( COE_ON & JTAGEN_OFF & ICS_PGD1 );
//_FUID0( 'W' );
//_FUID1( 'K' );
//1、芯片的配置字
//2、芯片的各时钟设定
//3、芯片其它硬件配置
//4、参数定义写程序
unsigned char time_IF=0;
unsigned int delay_data;
const unsigned int sindata[360]={688 ,
694 ,
700 ,
705 ,
711 ,
717 ,
723 ,
729 ,
735 ,
741 ,
747 ,
753 ,
758 ,
764 ,
770 ,
776 ,
781 ,
787 ,
793 ,
798 ,
804 ,
810 ,
815 ,
820 ,
826 ,
831 ,
837 ,
842 ,
847 ,
852 ,
857 ,
863 ,
868 ,
873 ,
877 ,
882 ,
887 ,
892 ,
896 ,
901 ,
906 ,
910 ,
914 ,
919 ,
923 ,
927 ,
931 ,
935 ,
939 ,
943 ,
947 ,
951 ,
954 ,
958 ,
961 ,
965 ,
968 ,
971 ,
974 ,
977 ,
980 ,
983 ,
986 ,
988 ,
991 ,
993 ,
996 ,
998 ,
1000 ,
1002 ,
1004 ,
1006 ,
1008 ,
1010 ,
1011 ,
1013 ,
1014 ,
1016 ,
1017 ,
1018 ,
1019 ,
1020 ,
1020 ,
1021 ,
1022 ,
1022 ,
1023 ,
1023 ,
1023 ,
1023 ,
1023 ,
1023 ,
1023 ,
1022 ,
1022 ,
1021 ,
1020 ,
1020 ,
1019 ,
1018 ,
1017 ,
1016 ,
1014 ,
1013 ,
1011 ,
1010 ,
1008 ,
1006 ,
1004 ,
1002 ,
1000 ,
998 ,
996 ,
993 ,
991 ,
988 ,
986 ,
983 ,
980 ,
977 ,
974 ,
971 ,
968 ,
965 ,
961 ,
958 ,
954 ,
951 ,
947 ,
943 ,
939 ,
935 ,
931 ,
927 ,
923 ,
919 ,
914 ,
910 ,
906 ,
901 ,
896 ,
892 ,
887 ,
882 ,
877 ,
873 ,
868 ,
863 ,
857 ,
852 ,
847 ,
842 ,
837 ,
831 ,
826 ,
820 ,
815 ,
810 ,
804 ,
798 ,
793 ,
787 ,
781 ,
776 ,
770 ,
764 ,
758 ,
753 ,
747 ,
741 ,
735 ,
729 ,
723 ,
717 ,
711 ,
705 ,
700 ,
694 ,
688 ,
682 ,
676 ,
670 ,
664 ,
658 ,
652 ,
646 ,
640 ,
634 ,
628 ,
622 ,
617 ,
611 ,
605 ,
599 ,
593 ,
588 ,
582 ,
576 ,
571 ,
565 ,
559 ,
554 ,
548 ,
543 ,
537 ,
532 ,
527 ,
521 ,
516 ,
511 ,
506 ,
501 ,
496 ,
491 ,
486 ,
481 ,
476 ,
472 ,
467 ,
462 ,
458 ,
453 ,
449 ,
445 ,
440 ,
436 ,
432 ,
428 ,
424 ,
420 ,
416 ,
413 ,
409 ,
406 ,
402 ,
399 ,
395 ,
392 ,
389 ,
386 ,
383 ,
380 ,
378 ,
375 ,
372 ,
370 ,
367 ,
365 ,
363 ,
361 ,
359 ,
357 ,
355 ,
354 ,
352 ,
350 ,
349 ,
348 ,
347 ,
346 ,
345 ,
344 ,
343 ,
342 ,
342 ,
341 ,
341 ,
341 ,
340 ,
340 ,
340 ,
341 ,
341 ,
341 ,
342 ,
342 ,
343 ,
344 ,
345 ,
346 ,
347 ,
348 ,
349 ,
350 ,
352 ,
354 ,
355 ,
357 ,
359 ,
361 ,
363 ,
365 ,
367 ,
370 ,
372 ,
375 ,
378 ,
380 ,
383 ,
386 ,
389 ,
392 ,
395 ,
399 ,
402 ,
406 ,
409 ,
413 ,
416 ,
420 ,
424 ,
428 ,
432 ,
436 ,
440 ,
445 ,
449 ,
453 ,
458 ,
462 ,
467 ,
472 ,
476 ,
481 ,
486 ,
491 ,
496 ,
501 ,
506 ,
511 ,
516 ,
521 ,
527 ,
532 ,
537 ,
543 ,
548 ,
554 ,
559 ,
565 ,
571 ,
576 ,
582 ,
588 ,
593 ,
599 ,
605 ,
611 ,
617 ,
622 ,
628 ,
634 ,
640 ,
646 ,
652 ,
658 ,
664 ,
670 ,
676 ,
682
};
const unsigned int sindata2[360]={
443 ,
445 ,
447 ,
449 ,
451 ,
453 ,
455 ,
457 ,
459 ,
461 ,
463 ,
465 ,
467 ,
469 ,
471 ,
473 ,
475 ,
477 ,
479 ,
481 ,
483 ,
485 ,
487 ,
489 ,
490 ,
492 ,
494 ,
496 ,
498 ,
499 ,
501 ,
503 ,
505 ,
506 ,
508 ,
510 ,
511 ,
513 ,
514 ,
516 ,
518 ,
519 ,
521 ,
522 ,
523 ,
525 ,
526 ,
528 ,
529 ,
530 ,
532 ,
533 ,
534 ,
535 ,
536 ,
538 ,
539 ,
540 ,
541 ,
542 ,
543 ,
544 ,
545 ,
546 ,
547 ,
547 ,
548 ,
549 ,
550 ,
550 ,
551 ,
552 ,
552 ,
553 ,
554 ,
554 ,
555 ,
555 ,
555 ,
556 ,
556 ,
556 ,
557 ,
557 ,
557 ,
557 ,
557 ,
557 ,
557 ,
557 ,
557 ,
557 ,
557 ,
557 ,
557 ,
557 ,
557 ,
556 ,
556 ,
556 ,
555 ,
555 ,
555 ,
554 ,
554 ,
553 ,
552 ,
552 ,
551 ,
550 ,
550 ,
549 ,
548 ,
547 ,
547 ,
546 ,
545 ,
544 ,
543 ,
542 ,
541 ,
540 ,
539 ,
538 ,
536 ,
535 ,
534 ,
533 ,
532 ,
530 ,
529 ,
528 ,
526 ,
525 ,
523 ,
522 ,
521 ,
519 ,
518 ,
516 ,
514 ,
513 ,
511 ,
510 ,
508 ,
506 ,
505 ,
503 ,
501 ,
499 ,
498 ,
496 ,
494 ,
492 ,
490 ,
489 ,
487 ,
485 ,
483 ,
481 ,
479 ,
477 ,
475 ,
473 ,
471 ,
469 ,
467 ,
465 ,
463 ,
461 ,
459 ,
457 ,
455 ,
453 ,
451 ,
449 ,
447 ,
445 ,
443 ,
441 ,
439 ,
437 ,
435 ,
433 ,
431 ,
429 ,
427 ,
425 ,
423 ,
421 ,
419 ,
417 ,
415 ,
413 ,
411 ,
409 ,
407 ,
405 ,
403 ,
401 ,
400 ,
398 ,
396 ,
394 ,
392 ,
390 ,
388 ,
387 ,
385 ,
383 ,
381 ,
380 ,
378 ,
376 ,
375 ,
373 ,
371 ,
370 ,
368 ,
367 ,
365 ,
363 ,
362 ,
360 ,
359 ,
358 ,
356 ,
355 ,
354 ,
352 ,
351 ,
350 ,
348 ,
347 ,
346 ,
345 ,
344 ,
343 ,
342 ,
341 ,
340 ,
339 ,
338 ,
337 ,
336 ,
335 ,
334 ,
333 ,
333 ,
332 ,
331 ,
331 ,
330 ,
330 ,
329 ,
328 ,
328 ,
328 ,
327 ,
327 ,
326 ,
326 ,
326 ,
326 ,
325 ,
325 ,
325 ,
325 ,
325 ,
325 ,
325 ,
325 ,
325 ,
325 ,
325 ,
326 ,
326 ,
326 ,
326 ,
327 ,
327 ,
328 ,
328 ,
328 ,
329 ,
330 ,
330 ,
331 ,
331 ,
332 ,
333 ,
333 ,
334 ,
335 ,
336 ,
337 ,
338 ,
339 ,
340 ,
341 ,
342 ,
343 ,
344 ,
345 ,
346 ,
347 ,
348 ,
350 ,
351 ,
352 ,
354 ,
355 ,
356 ,
358 ,
359 ,
360 ,
362 ,
363 ,
365 ,
367 ,
368 ,
370 ,
371 ,
373 ,
375 ,
376 ,
378 ,
380 ,
381 ,
383 ,
385 ,
387 ,
388 ,
390 ,
392 ,
394 ,
396 ,
398 ,
400 ,
401 ,
403 ,
405 ,
407 ,
409 ,
411 ,
413 ,
415 ,
417 ,
419 ,
421 ,
423 ,
425 ,
427 ,
429 ,
431 ,
433 ,
435 ,
437 ,
439 ,
441
};
int main(void)
{
unsigned int i;
// unsigned int j=1200;
// unsigned char k=35;
TRISA=0x0000;//0000 0000 0000 0000
TRISB=0x0000;
PORTA=0x0000;
PORTB=0x0000;
// time1_init(j);
while(1)
{
/*第一种定时器延时方案*/
/* for(j=1200;j>10;j--)
{
for(i=0;i<360;i++)
{
DAC_init(sindata2[i]);
while(time_IF==0);
time_IF=0;
T1CONbits.TON=1;
i=i;
}
j=j;
time1_init(j);
}
*/
/*第二种软件延时方案*/
//50Hz~1.5KHz
for(delay_data=300;delay_data>0;delay_data--)
{
for(i=0;i<360;i++)
{
DAC_init(sindata2[i]); //delay(0)时正弦周期为650us
delay(delay_data); //delay(1)为0.18us
}
}
//1.5KHz~4.67KHz
for(delay_data=28;delay_data>0;delay_data--)
{
for(i=0;i<360;)
{
DAC_init(sindata2[i]); //delay(0)时正弦周期为220us
delay(delay_data); //delay(1)为0.18us
i=i+3;
}
}
//4.67KHz~10KHz
for(delay_data=12;delay_data>0;delay_data--)
{
for(i=0;i<360;)
{
DAC_init(sindata2[i]); //delay(0)时正弦周期为110us
delay(delay_data); //delay(1)为0.18us
i=i+7;
}
}
//10KHz~20KHz
for(delay_data=15;delay_data>3;delay_data--)
{
for(i=0;i<360;)
{
DAC_init(sindata2[i]); //delay(0)时正弦周期为40us
delay(delay_data); //delay(1)为0.18us
i=i+17;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -