並列ポート出力

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
SoSo_ynak

並列ポート出力

#1

投稿記事 by SoSo_ynak » 5年前

ARM初心者です。
uVision5 上でやっと Lチカ プログラムが動くようになりました。
Lチカはポート単独出力だったのですが、何本かのポートに同時にデータパターンを
出力しようとして行き詰まりました。

コード:

int main(void)
{
	/* Unlock protected registers */
	SYS_UnlockReg();
	/* Init System, peripheral clock and multi-function I/O */
	SYS_Init();
 	/* Lock protected registers */
	SYS_LockReg();
 	/* Init UART0 for printf */
	UART0_Init();
   
    /* Configure PB.5 as Input mode and PA.10 as Output mode */
	GPIO_SetMode(PA, BIT10, GPIO_PMD_OUTPUT);
	GPIO_SetMode(PB, BIT5, GPIO_PMD_INPUT);
	
	PA10 = 0;
	while(1)
	{
		if(PB5 != 0){								// PB5 = H >> blinking
			if( PA10 == 0){
				CLK_SysTickDelay(20000);
			}
			else{
				CLK_SysTickLongDelay(1000000);
			}
			PA10 = ~PA10;
		}
	}
} 
このコードの中の
PA10 = 0/1;
を PICの
PORTA = 0b01010101;
のように書くことはできないのでしょうか?
(もちろん、並列なら 8進でも16進表記でもいいのですが)
ファンジェネのように配列に入れたパターンを順次出力することを考えています。
よろしくおねがいします。

結城紬
記事: 42
登録日時: 7年前

Re: 並列ポート出力

#2

投稿記事 by 結城紬 » 5年前

SoSo_ynak さん、こんにちは。
GPIO はペリフェラルですので、制御方法はチップによって異なります。ARMなら全部同じ、ではありません。
できるかどうかは、CPUのリファレンスマニュアルを見ればわかります。できると載っていないのであれば、無理です。

SoSo_ynak

Re: 並列ポート出力

#3

投稿記事 by SoSo_ynak » 5年前

結城紬さん
アドバイスありがとうございます。
マイナーなチップ(Nuvoton NUC220)なので
日本語情報が少なくて苦労してます。
早速確かめてみます。

結城紬
記事: 42
登録日時: 7年前

Re: 並列ポート出力

#4

投稿記事 by 結城紬 » 5年前

Nuvoton というメーカーがあるんですね。初めて知りました。勉強になります。

マニュアルは多分これでしょうか。
http://www.nuvoton.com/resource-files/T ... _V1.02.pdf

"GPIO Port [A/B/C/D/E/F] Data Output Value (GPIOx_DOUT)" の記述を見ると、ポート毎の同時設定はできそうな感じですね。

返信

“C言語何でも質問掲示板” へ戻る