ここではトランジスターでドライブしているが直接ドライブしてもよい。
#include "MicroBit.h" MicroBit uBit; int main(void){ uBit.init(); int val = 0; // デューティの初期値 int inc = 1; // デューティの増分 (または減分) uBit.io.P0.setAnalogValue(val); // 必ず先にデューティを設定しておく。 uBit.io.P0.setAnalogPeriodUs(1000); while(1){ uBit.io.P0.setAnalogValue(val); val += inc; // デューティが 0 ~ 1023 の範囲を超えたら増分、減分を反転する。 if(val < 0 || 1023 < val){inc = -inc;} wait_us(500); } release_fiber(); return 0; }