十個盒子圍成一圈,十顆球從 0 到 9 編號,每個盒子只能放一顆球,旋轉放置視為同一種放法,例如 0123456789 與 1234567890 視為相同,請問有幾種不同放法?
2019年1月30日 星期三
訓練數學感 202 ─ 循環的排列
2019年1月26日 星期六
ROSA 系統開發 62 ─ LCD Nokia 5110
2019年1月22日 星期二
訓練數學感 201 ─ 正三角形面積等於多少?
2019年1月18日 星期五
ROSA 系統開發 61 ─ System Timer
寫任何嵌入式系統,系統時間控制非常重要,但是 Arduino 的使用者有很大比例是非專業程式設計師,基於這樣的情形,促使我想開源設計 Robot Operating System for Arduino,邁入第四個年頭,為了更普及 ROSA,所以將它函式庫化,請看 ROSA 系統開發 60 基本觀念。
以下是主程式,你只要改寫它就可以立即使用
// (C) 2019, Bridan Wang, CC BY-NC-SA 3.0 TW
// This is a demo program applied Robot Operating System for Arduino
// http://4rdp.blogspot.tw/search/label/ROSA%20(Arduino)
//軟件許可協議
//
//研發養成所 Bridan Wang 提供此軟體供學校教育或個人單獨使用
//對外分享展示本軟體時,請說明來源來自研發養成所
//你可以架構在本軟體基礎上,設計新功能或修改
//本軟體屬於 Bridan 和或其它原始碼供應商,並受適用的法律版權保護
//此軟體按“原樣”提供,可能含有錯誤,不作任何明示,暗示或法律的保證
//本軟體僅限 Arduino 部分微控制器產品,適用於特定用途
// Bridan 在任何情況、環境以及特殊使用不負任何原因損害賠償責任
//
//這是 ROSA 韌體版本的一部分。
/***********************************************************
// Include
************************************************************/
#include "ROSA_DEFINE.h"
/***********************************************************
// SYSTEM TIMER
************************************************************/
#define ledPin 13 // 第13隻接腳控制 LED 明滅。
byte state = 0;
void TIMER_2ms()
{
}
void TIMER_10ms()
{
}
void TIMER_100ms()
{
state = 1 - state;
if (state==0)
digitalWrite(ledPin, LOW); // 設定PIN13腳位為低電位= 0V ,LED 熄滅
else
digitalWrite(ledPin, HIGH); // 設定PIN13腳位為高電位= 5V ,LED 發亮
}
void TIMER_1sec()
{
}
#include ".\ROSA\ROSA_TIMER.cpp"
void setup() {
ROSA_TIMER_SETUP();
pinMode(ledPin, OUTPUT);
}
void loop()
{
ROSA_TIMER_RUNNING();
}
2019年1月14日 星期一
訓練數學感 200 ─ 兩群總和相等的機率
整數 1, 2, 3, 4, 5, 6, 7,將它們分成兩群,每群至少一個,把各群數值相加,請問兩群數值總和相等的機率為多少?
2019年1月10日 星期四
2019年1月6日 星期日
訓練數學感 199 ─ 最多可以放幾個等腰三角形
2019年1月2日 星期三
ROSA 系統開發 60 ─ Arduino 的 #include 與 #define
2019 祝大家新年快樂,2018 年時間投入在 4rdp 四格益智拼圖的開發,今年將再度回歸 ROSA (Robot Operating System for Arduino) 開發,經過一年時間沉潛,沈思若要 ROSA 更加普及,須要將它寫成函式庫型態,所以我就從這地方出發。
ROSA 有一點與其他函式庫不同的地方,它有比較完整的程式架構,希望 Arduino 初階入門的朋友只要改動一些設定就可以立即使用,因此 C/C++ 語言中 #include 和 #define 是非常重要的語法,所以本節說明相關要點。
我們先建立一個 ROSA_Timer.ino 主程式,程式碼如下:
#define ledPin 13 // 第13隻接腳控制 LED 明滅。
// setup() 函數只會於電源啟動時執行1次
void setup()
{
// 設定第 13 支腳為輸出模式
pinMode(ledPin, OUTPUT);
}
// loop() 函數會不斷的重複執行
void loop()
{
digitalWrite(ledPin, HIGH); // 設定PIN13腳位為高電位= 5V ,LED 發亮
delay(500); // 等待500 毫秒,也就發亮 0.5 秒
digitalWrite(ledPin, LOW); // 設定PIN13腳位為低電位= 0V ,LED 熄滅
delay(500); // 等待500 毫秒,也就熄滅 0.5 秒
}
------------------------------------------------------------
接下來 ROSA_Timer.ino 程式改寫為:
#define ledPin 13 // 第13隻接腳控制 LED 明滅。
// setup() 函數只會於電源啟動時執行1次
void setup()
{
// 設定第 13 支腳為輸出模式
pinMode(ledPin, OUTPUT);
}
// loop() 函數會不斷的重複執行
void loop()
{
led();
}
另外新增一個 ROSA_LED.cpp 程式
void led()
{
digitalWrite(ledPin, HIGH); // 設定PIN13腳位為高電位= 5V ,LED 發亮
delay(500); // 等待500 毫秒,也就發亮 0.5 秒
digitalWrite(ledPin, LOW); // 設定PIN13腳位為低電位= 0V ,LED 熄滅
delay(500); // 等待500 毫秒,也就熄滅 0.5 秒
}
程式編譯過程會出現下列錯誤
error: 'led' was not declared in this scope
---------------------------------------------------------------