fork download
  1. #include <xc.h>
  2. #define _XTAL_FREQ 4000000
  3.  
  4. __CONFIG(FOSC_INTOSCIO & WDTE_OFF & PWRTE_ON & MCLRE_OFF & CP_OFF & CPD_OFF & BOREN_ON & IESO_OFF & FCMEN_OFF);
  5. __IDLOC(F683); //PIC12F683
  6.  
  7. void LED_ON_OFF(unsigned char);
  8. void LED_CHANGE(unsigned char);
  9.  
  10. void main(void)
  11. {
  12. unsigned char i; //スイッチ用フラグに使用
  13.  
  14. OSCCON = 0b01100000; //3V電圧なのでクロック周波数を4MHzにする
  15. ANSEL = 0;
  16. TRISIO = 0b00111000; //入出力設定。GP3,GP4,GP5を入力、GP0,GP1,GP2は出力
  17. CMCON0 = 7;
  18.  
  19. GPIO = 0b00000000;
  20.  
  21. i = 1;
  22.  
  23. while(1) //無限ループ構造
  24. {
  25. ADCON0 = 0b00001101; //GP4(AN3)をAD変換対象にする。GP3とGP5はもともとデジタル?
  26. __delay_ms(20);
  27. GO = 1; //変換の開始
  28. while(GO); //変換が終わるまで待つ
  29.  
  30. if(GP3 == 0) //電源スイッチが押されたときの処理。
  31. {
  32. __delay_ms(10); //チャタリング除去
  33.  
  34. if(i == 1) //スイッチが一回押されたとき(起動時)
  35. {
  36. LED_ON_OFF(i);
  37. i++;
  38. }
  39. else if(i == 2) //スイッチが二回押されたとき
  40. {
  41. LED_ON_OFF(i);
  42. i++;
  43. }
  44. else //スイッチが三回押されたとき
  45. {
  46. LED_ON_OFF(i);
  47. i = 1;
  48. }
  49. }
  50.  
  51. if((GP4 == 0) || (GP5 == 0) && ((i == 2) || (i == 3)))
  52. {
  53. LED_CHANGE(i-1);
  54. }
  55. }
  56. }
  57.  
  58. void LED_ON_OFF(unsigned char n)
  59. {
  60. if(n == 1)
  61. {
  62. GP0 = 0;
  63. GP1 = 0;
  64. GP2 = 1; //緑を点灯
  65. }
  66. else if(n == 2)
  67. {
  68. GP0 = 0;
  69. GP1 = 1; //青を点灯
  70. GP2 = 0;
  71. }
  72. else
  73. {
  74. GP0 = 0;
  75. GP1 = 0;
  76. GP2 = 0;
  77. }
  78. }
  79.  
  80. void LED_CHANGE(unsigned char n)
  81. {
  82. unsigned char x;
  83.  
  84. for(x=0; x<10; x++) //赤を点滅
  85. {
  86. GP0 = 1;
  87. GP1 = 0;
  88. GP2 = 0;
  89. __delay_ms(50);
  90. GP0 = 0;
  91. GP1 = 0;
  92. GP2 = 0;
  93. __delay_ms(50);
  94. }
  95.  
  96. LED_ON_OFF(n);
  97. }
  98.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.c:1:10: fatal error: 'xc.h' file not found
#include <xc.h>
         ^
1 error generated.
stdout
Standard output is empty