
Berikut adalah sebuah contoh lain, menggunakan tiga thread untuk menangani blink LED, pengiriman data serial dan pembacaan input analog dan mengirimkannya melalui serial.
#include <ChibiOS_AVR.h> MUTEX_DECL(demoMutex); static WORKING_AREA(waThread1, 16); static msg_t Thread1(void *arg) { bitWrite(DDRA,PA7,OUTPUT); while (1) { bitWrite(PORTA,PA7,HIGH); chThdSleepMilliseconds(250); bitWrite(PORTA,PA7,LOW); chThdSleepMilliseconds(250); } return 0; } static WORKING_AREA(waThread2, 64); static msg_t Thread2(void *arg) { while (1) { chThdSleepMilliseconds(1000); chMtxLock(&demoMutex); Serial.println(F("Hello")); chMtxUnlock(); } } static WORKING_AREA(waThread3, 64); static msg_t Thread3(void *arg) { while (1) { chThdSleepMilliseconds(1000); int adc = analogRead(0); chMtxLock(&demoMutex); Serial.print(F("ADC: ")); Serial.println(adc); chMtxUnlock(); } } void setup() { Serial.begin(9600); chBegin(mainThread); while(1) {} } void mainThread() { chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO + 2, Thread1, NULL); chThdCreateStatic(waThread2, sizeof(waThread2), NORMALPRIO + 2, Thread2, NULL); chThdCreateStatic(waThread3, sizeof(waThread3), NORMALPRIO + 1, Thread3, NULL); while (1) { } } void loop() { // not used }
Untuk informasi lebih lanjut mengenai NS.One dan pelatihannya, bisa menghubungi:
NEXT SYSTEM
Padepokan Robot Bandung
ITC Kosambi Ruko F2
Jalan Baranang Siang 6-8, Bandung 40112
Tel. (022) 4222062, (022) 70775874
Email: info at nextsys.web.id