fork download
  1. #include <p18f4520.h>
  2. #include <delays.h>
  3. // #include <i2c.h>
  4. #include "xlcd.h"
  5.  
  6. #pragma config WDT = OFF
  7.  
  8. int i;
  9. char tmp;
  10.  
  11. void initXLCD(void);
  12. void txtXLCD(void);
  13. void iniI2C(void);
  14. char readTemp(void);
  15. void showResults(char c);
  16.  
  17. void OpenI2C() {
  18. SSPSTATbits.SMP = 1;
  19. SSPCON1bits.SSPEN = 1;
  20. SSPCON1bits.SSPM0 = 0;
  21. SSPCON1bits.SSPM1 = 0;
  22. SSPCON1bits.SSPM2 = 0;
  23. SSPCON1bits.SSPM3 = 1;
  24. }
  25.  
  26. void StartI2C() {
  27. SSPCON2bits.SEN = 1;
  28. while(SSPCON2bits.SEN != 0);
  29. }
  30.  
  31. void WriteI2C(char data) {
  32. PIR1bits.SSPIF = 0;
  33. SSPBUF = data;
  34. while(PIR1bits.SSPIF == 0);
  35. }
  36.  
  37. void StopI2C() {
  38. SSPCON2bits.PEN = 1;
  39. while(SSPCON2bits.PEN != 0);
  40. }
  41.  
  42. char ReadI2C() {
  43. SSPCON2bits.RCEN = 1;
  44. while(SSPSTATbits.BF == 0);
  45. return SSPBUF;
  46. }
  47.  
  48. void NotAckI2C() {
  49. SSPCON2bits.ACKDT = 1;
  50. SSPCON2bits.ACKEN = 1;
  51. while(SSPCON2bits.ACKEN);
  52. }
  53.  
  54. void iniI2C(void) {
  55. // Inicjalizacja I2C
  56.  
  57. OpenI2C();
  58. SSPADD = 9;
  59. StartI2C();
  60. WriteI2C(0x9A);
  61. WriteI2C(0);
  62. StopI2C();
  63. }
  64.  
  65. char readTemp(void) {
  66. tmp = 0x00;
  67. // Odczyt temperatury
  68. // tmp = SSPBUF
  69.  
  70. StartI2C();
  71. WriteI2C(0x9B);
  72.  
  73. tmp = ReadI2C();
  74. NotAckI2C();
  75. StopI2C();
  76.  
  77. return tmp;
  78. }
  79.  
  80. void showCharLCD(unsigned char c) {
  81. while(BusyXLCD());
  82. putcXLCD(c);
  83. }
  84.  
  85. void showDigitLCD(unsigned char digit) {
  86. showCharLCD('0' + digit);
  87. }
  88.  
  89. void showResults(char c) {
  90. // Wyświetlenie binarnie
  91. // zawartości rejestru SSPBUF
  92. WriteCmdXLCD(0x87);
  93. DelayXLCD();
  94. for(i = 7; i >=0; i--) {
  95. while(BusyXLCD());
  96. putcXLCD(((c >> i) & 0B0000001) + 0x30);
  97. }
  98.  
  99. // Wyświetlenie temperatury
  100. // w stopniach Cejslusza
  101. // zsdj (np. -25, 14, 110)
  102.  
  103. WriteCmdXLCD(0xCB);
  104. DelayXLCD();
  105.  
  106. showCharLCD(c > 0 ? ' ' : '-');
  107. showDigitLCD(' ');
  108. showDigitLCD((c % 100) / 10);
  109. showDigitLCD(c % 10);
  110.  
  111. showCharLCD(0xDF);
  112. showCharLCD('C');
  113. }
  114.  
  115. void main() {
  116.  
  117. initXLCD();
  118. txtXLCD();
  119. iniI2C();
  120.  
  121. while(1) {
  122. tmp = readTemp();
  123. showResults(tmp);
  124. Delay10KTCYx(100);
  125. }
  126.  
  127. }
  128.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:1: error: illegal character: '#'
#include <p18f4520.h>
^
Main.java:1: error: class, interface, or enum expected
#include <p18f4520.h>
         ^
Main.java:2: error: illegal character: '#'
#include <delays.h>
^
Main.java:4: error: illegal character: '#'
#include "xlcd.h"
^
Main.java:6: error: illegal character: '#'
#pragma config WDT = OFF
^
Main.java:9: error: class, interface, or enum expected
char tmp;
^
Main.java:11: error: class, interface, or enum expected
void initXLCD(void);
^
Main.java:12: error: class, interface, or enum expected
void txtXLCD(void);
^
Main.java:13: error: class, interface, or enum expected
void iniI2C(void);
^
Main.java:14: error: class, interface, or enum expected
char readTemp(void);
^
Main.java:15: error: class, interface, or enum expected
void showResults(char c);
^
Main.java:17: error: class, interface, or enum expected
void OpenI2C() {
^
Main.java:19: error: class, interface, or enum expected
	SSPCON1bits.SSPEN = 1;
	^
Main.java:20: error: class, interface, or enum expected
	SSPCON1bits.SSPM0 = 0;
	^
Main.java:21: error: class, interface, or enum expected
	SSPCON1bits.SSPM1 = 0;
	^
Main.java:22: error: class, interface, or enum expected
	SSPCON1bits.SSPM2 = 0;
	^
Main.java:23: error: class, interface, or enum expected
	SSPCON1bits.SSPM3 = 1;
	^
Main.java:24: error: class, interface, or enum expected
}
^
Main.java:28: error: class, interface, or enum expected
	while(SSPCON2bits.SEN != 0);
	^
Main.java:29: error: class, interface, or enum expected
}
^
Main.java:33: error: class, interface, or enum expected
	SSPBUF = data;
	^
Main.java:34: error: class, interface, or enum expected
	while(PIR1bits.SSPIF == 0);
	^
Main.java:35: error: class, interface, or enum expected
}
^
Main.java:39: error: class, interface, or enum expected
	while(SSPCON2bits.PEN != 0);
	^
Main.java:40: error: class, interface, or enum expected
}
^
Main.java:44: error: class, interface, or enum expected
	while(SSPSTATbits.BF == 0);
	^
Main.java:45: error: class, interface, or enum expected
	return SSPBUF;
	^
Main.java:46: error: class, interface, or enum expected
}
^
Main.java:50: error: class, interface, or enum expected
	SSPCON2bits.ACKEN = 1;
	^
Main.java:51: error: class, interface, or enum expected
	while(SSPCON2bits.ACKEN);
	^
Main.java:52: error: class, interface, or enum expected
}
^
Main.java:58: error: class, interface, or enum expected
	SSPADD = 9;
	^
Main.java:59: error: class, interface, or enum expected
	StartI2C();
	^
Main.java:60: error: class, interface, or enum expected
	WriteI2C(0x9A);
	^
Main.java:61: error: class, interface, or enum expected
	WriteI2C(0);
	^
Main.java:62: error: class, interface, or enum expected
	StopI2C();
	^
Main.java:63: error: class, interface, or enum expected
}
^
Main.java:70: error: class, interface, or enum expected
	StartI2C();
	^
Main.java:71: error: class, interface, or enum expected
	WriteI2C(0x9B);
	^
Main.java:73: error: class, interface, or enum expected
	tmp = ReadI2C();
	^
Main.java:74: error: class, interface, or enum expected
	NotAckI2C();
	^
Main.java:75: error: class, interface, or enum expected
	StopI2C();
	^
Main.java:77: error: class, interface, or enum expected
	return tmp;
	^
Main.java:78: error: class, interface, or enum expected
}
^
Main.java:82: error: class, interface, or enum expected
	putcXLCD(c);
	^
Main.java:83: error: class, interface, or enum expected
}
^
Main.java:87: error: class, interface, or enum expected
}
^
Main.java:93: error: class, interface, or enum expected
	DelayXLCD();
	^
Main.java:94: error: class, interface, or enum expected
	for(i = 7; i >=0; i--) {
	^
Main.java:94: error: class, interface, or enum expected
	for(i = 7; i >=0; i--) {
	           ^
Main.java:94: error: class, interface, or enum expected
	for(i = 7; i >=0; i--) {
	                  ^
Main.java:96: error: class, interface, or enum expected
		putcXLCD(((c >> i) & 0B0000001) + 0x30);
		^
Main.java:97: error: class, interface, or enum expected
	}
	^
Main.java:104: error: class, interface, or enum expected
	DelayXLCD();
	^
Main.java:106: error: class, interface, or enum expected
	showCharLCD(c > 0 ? ' ' : '-');
	^
Main.java:107: error: class, interface, or enum expected
	showDigitLCD(' ');
	^
Main.java:108: error: class, interface, or enum expected
	showDigitLCD((c % 100) / 10);
	^
Main.java:109: error: class, interface, or enum expected
	showDigitLCD(c % 10);
	^
Main.java:111: error: class, interface, or enum expected
	showCharLCD(0xDF);
	^
Main.java:112: error: class, interface, or enum expected
	showCharLCD('C');
	^
Main.java:113: error: class, interface, or enum expected
}
^
Main.java:118: error: class, interface, or enum expected
	txtXLCD();
	^
Main.java:119: error: class, interface, or enum expected
	iniI2C();
	^
Main.java:121: error: class, interface, or enum expected
	while(1) {
	^
Main.java:123: error: class, interface, or enum expected
		showResults(tmp);
		^
Main.java:124: error: class, interface, or enum expected
		Delay10KTCYx(100);
		^
Main.java:125: error: class, interface, or enum expected
	}
	^
67 errors
stdout
Standard output is empty