記事ディレクトリ
2 機能の使い方
モジュール型プログラミングでは、関数の使用は次の 3 つのステップに分かれています。
1. 関数定義(型が必要)
戻り値 関数名 (エントリパラメータ)
{ 関数によって実行される関数} @戻り値: 戻り値は無効です@関数名: キーワードを避ける (IDE では青)、繰り返し禁止、特殊文字以外も使用可能@entryパラメータ: タイプ + 名前、「,」で区切られた複数のパラメータ、空の場合は void と書き込みます
2. 関数宣言(型が必要)
戻り値関数名(入力パラメータ);
3. 関数呼び出し
関数名 (入力パラメータ)。呼び出すときは、パラメータを入力するだけでよく、型は必要ありません。
3 新しいファイルを作成し、モジュール式プログラミングを使用する
新しい xxx.c および xxx.h ファイルを作成します
機能ブロックを表す新しい xxx.c および xxx.h ファイルを作成します。1対1での対応をお勧めします。
[新規] をクリックします。デフォルトでは、テキスト ファイルがポップアップします。ファイル タイプは定義されていません。[保存] をクリックして math.c として保存し、さらに math.h として保存します。
xxx.h 形式:
#ifndef __XXX_H
#define __XXX_H は、
math.h に固定の一致形式を追加します。
呼び出しヘッダー ファイル
関数宣言…
#endif
xxx.c 形式
#include "xxx.h"
関数定義
検証コード
math.h:
#ifndef __MATH_H //if not define
#define __MATH_H
int Add(int parm1,int parm2);
#endif
math.c:
int Add(int parm1,int parm2)
{
return parm1 + parm2;
}
main.c への参照を追加します: #include "math.h"。
移行:
ファイルを追加するときは、パスを参照してプロジェクトに追加することを忘れないでください。
すべてを保存し、アイコンをダブルクリックし、math.c をプロジェクトに追加すると
コンパイルが完了し、自動的に開発ボードにダウンロードされます。CDC シリアル ポート ツールを開き、データ領域をクリアし、データを送信し、出力された値を取得します。
これにより、メイン関数のコードが非常にクリーンになり、大規模なプロジェクトの管理と編成に便利です。
完全なファイル構造は次のとおりです。
認証コード2
math.h:
#ifndef __MATH_H //if not define
#define __MATH_H
int Add(int parm1,int parm2); //parm1+parm2
int Sub(int parm1,int parm2); //parm1-parm2
int Mul(int parm1,int parm2); //parm1*parm2
#endif
math.c:
#include "math.h"
int Add(int parm1,int parm2)
{
return parm1 + parm2;
}
int Sub(int parm1,int parm2)
{
return parm1 - parm2;
}
int Mul(int parm1,int parm2)
{
return parm1 * parm2;
}
main.c で呼び出されます:
printf("add(10,20)计算结果为: %d\r\n",Add(10,20));+
printf("sub(5,2)计算结果为: %d\r\n",Sub(5,2));
printf("Mul(5,6)计算结果为: %d\r\n",Mul(5,6));
通常通り実行してください。
要約する
1. while ループのプロセスに慣れる
2. 関数の使用方法 (定義、宣言、呼び出し) を学ぶ
3. 新しいファイルの作成、ファイル パスの追加、プロジェクトへの追加方法を学ぶ
授業後の演習: SOS 救難信号のプログラミング
遭難信号の原理
出典: Asking Knowledge: SOS をライトでどのように表現しますか?
短い 3 つ、長い 3 つ、短い 3 つ
SOS は世界共通の遭難信号です。光信号で表すと、3 つの短いライトは S の文字を表し、3 つの長いライトは文字を表します。ライトは文字 O を表し、その後に続く 3 つの短いライトは S を表します。
ライトの長い点灯時間は短い点灯時間の3倍、短い点灯時間はLEDの2つの点灯時間の間隔と同じであり、また、文字間の短い点灯時間の3倍の消灯間隔があります。そして次の手紙。
サンプルコード
//S
while( time < 4 )
{
P22 = 0; //设置低电平 (屠龙刀三板载led)
P24 = 0;
delay_ms(500);
P22 = 1; //设置低电平 (屠龙刀三板载led)
P24 = 1;
delay_ms(500);
time++;
}
delay_ms(1000);
time = 1;
//O
while( time < 4 )
{
P22 = 0; //设置低电平 (屠龙刀三板载led)
P24 = 0;
delay_ms(1500);
P22 = 1; //设置低电平 (屠龙刀三板载led)
P24 = 1;
delay_ms(500);
time++;
}
delay_ms(1000);
time = 1;
//S
while( time < 4 )
{
P22 = 0; //设置低电平 (屠龙刀三板载led)
P24 = 0;
delay_ms(500);
P22 = 1; //设置低电平 (屠龙刀三板载led)
P24 = 1;
delay_ms(500);
time++;
}
delay_ms(1000);
time = 1;
```