// main function; program starts here void main(void) { unsigned char data = 0; unsigned int battery_voltage = 0; // ADC reading of battery voltage ports_initialize(); // set up ports ADC_initialize(); // configure ADC SPI_initialize(); // set up SPI module sleep_initialize(); // set up sleep mode ISR_initialize(); // set up ISR while(1) { SLEEP(); // sleep PIC until WDT expires time++; // increment time (+16s) battery_voltage = ADC_read(0x09); // read battery voltage if ( time >= 1 ) // 1*16s=16s { time = 0; // reset time if(battery_voltage >= 690) //690 = 11v { LATCbits.LATC4 = 1; // turn relay on SPI_enable(); // turn on SPI module while( data != 0xDA ) // wait for shutdown command to be received { while(!SSP1STATbits.BF) // wait till data is in the buffer { CLRWDT(); } data = SSP1BUF; // read data outside } data = 0x00; SPI_disable(); // turn off SPI module __delay_ms(10000); // wait for R Pi to shutdown LATCbits.LATC4 = 0; // turn relay off } } } }
int main() { InitializeLEDs(); SPI_initialize(); uint8_t data = 0xaa; SPI_Write(0x20, 0xC4); while(1) { data = SPI_Read(0x2d); } while(1) { } }
static void initPLJavaClasses(void) { jfieldID tlField; JNINativeMethod backendMethods[] = { { "isCallingJava", "()Z", Java_org_postgresql_pljava_internal_Backend_isCallingJava }, { "isReleaseLingeringSavepoints", "()Z", Java_org_postgresql_pljava_internal_Backend_isReleaseLingeringSavepoints }, { "_getLibraryPath", "()Ljava/lang/String;", Java_org_postgresql_pljava_internal_Backend__1getLibraryPath }, { "_getConfigOption", "(Ljava/lang/String;)Ljava/lang/String;", Java_org_postgresql_pljava_internal_Backend__1getConfigOption }, { "_getStatementCacheSize", "()I", Java_org_postgresql_pljava_internal_Backend__1getStatementCacheSize }, { "_log", "(ILjava/lang/String;)V", Java_org_postgresql_pljava_internal_Backend__1log }, { "_clearFunctionCache", "()V", Java_org_postgresql_pljava_internal_Backend__1clearFunctionCache }, { "_isCreatingExtension", "()Z", Java_org_postgresql_pljava_internal_Backend__1isCreatingExtension }, { 0, 0, 0 } }; Exception_initialize(); elog(DEBUG2, "checking for a PL/Java Backend class on the given classpath"); s_Backend_class = PgObject_getJavaClass( "org/postgresql/pljava/internal/Backend"); elog(DEBUG2, "successfully loaded Backend class"); PgObject_registerNatives2(s_Backend_class, backendMethods); tlField = PgObject_getStaticJavaField(s_Backend_class, "THREADLOCK", "Ljava/lang/Object;"); JNI_setThreadLock(JNI_getStaticObjectField(s_Backend_class, tlField)); Invocation_initialize(); Exception_initialize2(); SPI_initialize(); Type_initialize(); Function_initialize(); Session_initialize(); PgSavepoint_initialize(); XactListener_initialize(); SubXactListener_initialize(); SQLInputFromChunk_initialize(); SQLOutputToChunk_initialize(); SQLInputFromTuple_initialize(); SQLOutputToTuple_initialize(); InstallHelper_initialize(); s_setTrusted = PgObject_getStaticJavaMethod(s_Backend_class, "setTrusted", "(Z)V"); }