[戻る]
新着表示

pic16f688のデバッグの仕方 投稿者:金子正吉 投稿日:2018/04/04(Wed) 17:46:51 No.1136

お世話になります。
PIC16F688を初に使用しています。パッケージは14pinTSSOPです。PICKIT3、MATLAB X IDE v2.26を使用してデバッグモードでプログラミングを行ったところ、次のメッセージが表示されます。
Programming/Verify complete
The target device is not ready for debugging.
Please check your configuration bit settings and program the device before proceeding.
The most common causes for this failure are oscillator and/or PGC/PGD settings.

また、プログラム書き込みモードのアイコンをクリックして行うと
BUILD SUCCESSFUL (total time: 1s)
Loading code from C:/Masakichi/Job/-19s/csm02_RelayDriverWithTemp/20180324_TmpCtrl/TCtrl/Tctrl.X/dist/default/production/Tctrl.X.production.hex...
Loading completed
Cannot program a production build to a debug header.
と表示されます。デバッグできる環境をどうすれば構築できますでしょうか。また、プログラム書き込みも同様です。よろしくお願いいたします。

Re: PIC24F SFR 投稿者:Anken 投稿日:2018/04/04(Wed) 16:30:44 No.1135

最近WEB検索で私の質問が出てきました。ご返信ありがとうございます。テキサスインスツルメントや、Renesasもかじっておりまして、遠回りは相当なものです。C言語やりながら、組み込みマイコン。LED点滅とかはできるのですが、マイコンの全体像がわからないみたいです。先生の本をもう一度頭から読み、マニュアルも読んでいます。バルーンさんのはIDEになるのでしょうか?便利そうですが、まだ手が出せません。

MicroElectronikannの評価ボード、dsPICF-300(ボードにはEasy24-33v6とありますが)これに付属していた、CDのmicro Pro for dsPICという統合開発環境でプログラムをコンパイルからデバッグ、CPUへの書き込みを行っていまして、コンパイルやデバッグという意識も無い訳です。
例題はそこそこできてしまいます。このIDEですか?便利すぎるようです。また、アナログだと三角波発振回路と直流電圧をコンパレータで比較すればPWM波形は簡単にでますが、マイコンのマニュアル、言っていることはわかりますが、いざ自分のやりたいこととなると、理解が足りないです。一昨年12月にPIC16F1705でPWMを出せるようになり、ほぼ1年間、時々C言語やりながら、コンバータの実験をいろいろやっていまして、概ね課題も分かってきたので、さて、さらにグレードアップというところで、初心者。マイコンやるのも1年ぶりです。御返事いただいていたことも最近まで知りませんでした。WEBも含めて、マイコンの世界が分かっていないのです。申し訳ないです。

スリープ時のタイマー1の動作 投稿者:sontonsan 投稿日:2018/03/29(Thu) 21:29:55 No.1134

追記
PIC16F1938を利用しDHT22を1時間おきに起動させ、その時の温度を考慮しFANを稼動できないか考え中です。
外付け部品を少なくする目的で、容量検知オシレータ設定の方法をお願いいたします。

スリープ時のタイマー1の動作 投稿者:sontonsan 投稿日:2018/03/29(Thu) 08:19:32 No.1132

内部オシレーター LFINTOSC の使い方が判らず教えてください。
スリープ時もカウントして欲しいと考え作りました、ものを添付いたします。
スリープ部はまだかんせいしておりませんがよろしくお願いいたします。
//Timer1設定 
//基本設定OSCCON = 0b01101010;// 内部オシレーター 4MHz
T1CONbits.TMR1CS = 0b11;//
T1CONbits.T1CKPS = 0b00;//
T1CONbits.nT1SYNC = 0;//
T1CONbits.T1OSCEN = 1;
PIR1bits.TMR1IF = 0;
T1GCONbits.TMR1GE = 1;
TMR1H = 0x00;
TMR1L = 0x00;
PIE1bits.TMR1IE = 1;//Timer1割り込み許可
T1CONbits.TMR1ON = 1;//Timer1 スタート

//割り込み許可部
INTCONbits.PEIE = 1;//周辺割り込み許可
INTCONbits.GIE = 1;//全体割り込み許可

//
//割り込み関数
void interrupt ISR(void)
{
//1番
if (INTCONbits.IOCIF == 1){//状態変化割り込み判定
//
if (IOCBFbits.IOCBF5 == 1){//RB5の状態変化割り込み判定
__delay_ms(20);//チャタリング回避
if (PORTBbits.RB5 == 1){
// ボタンが離されたら先に進む(チャタリング防止)
__delay_ms(20);
while(PORTBbits.RB1 == 0);
__delay_ms(20);
//
IOCBFbits.IOCBF5 = 0;//状態変化割り込みポートクリアー
//LCDによる値確認
FAN_POWER = 0;//fan停止
LCD1602_POWER_ON();//LCD1602電源投入
led_chk^ = 1;
__delay_ms(5000);
LCD1602_POWER_OFF();//LCD1602電源遮断
}
}
INTCONbits.IOCIF = 0;//状態変化割り込みフラグクリアー
}
//1番終了
//
//2番手
if (PIR1bits.TMR1IF == 1){//Timer1割り込み判定
PIR1bits.TMR1IF = 0;//割り込みを初期化
TMR1H = 0x68;//再セット 10秒
TMR1L = 0xA2;
led_chk^ = 1;
}
//2番手終了
}

Re: ポートの名前で制御 投稿者:sontonsan 投稿日:2018/03/06(Tue) 22:38:14 No.1125

できました。
すいませんスペルミスがありました。
> ポートに名前をつけることができたのでLEDを点滅させてみましたが、点滅しません。
> RA1書式では点滅いたします。
> 書式および記述方法のご指導をお願いいたします。
>
> #define DHT22_POWER_PIN PORTAbits.RA1//DHT22電源のON/OFF
> #define DHT22_PIN_Direction TRISAbits.TRISA1//入出力制御 TRISA1 0=OUTPOT/1=INPUT
> //----- DHT22_電源投入関数
> void DHT22_POWER_ON(void)
> {
> DHT22_PIN_Direction = 0;//RA1=OUTPUT
> DHT22_POWER_PIN = 1; //RA1=Hi
> __deray_ms(10);
> }
> //----- DHT22_電源遮断関数
> void DHT22_POWER_OFF(void)
> {
> DHT22_PIN_Direction = 1;//RA1=INPUT
> DHT22_POWER_PIN = 0; //RA1=Low
> __deray_ms(10);
> }
> while(1)
> {
> //RA1=1;
> DHT22_POWER_ON;
> __delay_ms(250);
> //RA1=0;
> DHT22_POWER_OFF;
> __delay_ms(250);
> }

ポートの名前で制御 投稿者:sontonsan 投稿日:2018/03/06(Tue) 21:27:42 No.1124

ポートに名前をつけることができたのでLEDを点滅させてみましたが、点滅しません。
RA1書式では点滅いたします。
書式および記述方法のご指導をお願いいたします。

#define DHT22_POWER_PIN PORTAbits.RA1//DHT22電源のON/OFF
#define DHT22_PIN_Direction TRISAbits.TRISA1//入出力制御 TRISA1 0=OUTPOT/1=INPUT
//----- DHT22_電源投入関数
void DHT22_POWER_ON(void)
{
DHT22_PIN_Direction = 0;//RA1=OUTPUT
DHT22_POWER_PIN = 1; //RA1=Hi
__deray_ms(10);
}
//----- DHT22_電源遮断関数
void DHT22_POWER_OFF(void)
{
DHT22_PIN_Direction = 1;//RA1=INPUT
DHT22_POWER_PIN = 0; //RA1=Low
__deray_ms(10);
}
while(1)
{
//RA1=1;
DHT22_POWER_ON;
__delay_ms(250);
//RA1=0;
DHT22_POWER_OFF;
__delay_ms(250);
}

Re^2: ポートの定義方法 投稿者:sontonsan 投稿日:2018/03/06(Tue) 19:59:29 No.1123

ドンピシャです
ありがとうございました
> xc.hをincludeすればすべてのポート、レジスタは定義されていますから定義を追加する必要はありません。
>
> 記述は
>   PORTAbits.RA0=1; などとします。
>
> ピンに名前を付けたいときは
>
> #define DIR TRISAbits.TRISA0
>
> として
>
>   DIR=0;  とします
>
>
>
> > ポートの定義方法と使い方を教えてください
> >
> > #byte PORTA=4
> > #bit DATA_PIN=POTRA,0
> > #bit DATA_DIR=TRISA,0
> > 設定は完了
> >
> > 記述
> > DATA_DIR=0;//RA0出力
> > DATA_PIN=0;//RA0_LOWを出力
> >
> > PIC16F84A
> > IDE4.15
> > XC8_1.45
> > ご指導をお願いいたします

Re: ポートの定義方法 投稿者:Gokan 投稿日:2018/03/06(Tue) 17:00:17 No.1122

xc.hをincludeすればすべてのポート、レジスタは定義されていますから定義を追加する必要はありません。

記述は
  PORTAbits.RA0=1; などとします。

ピンに名前を付けたいときは

#define DIR TRISAbits.TRISA0

として

  DIR=0;  とします



> ポートの定義方法と使い方を教えてください
>
> #byte PORTA=4
> #bit DATA_PIN=POTRA,0
> #bit DATA_DIR=TRISA,0
> 設定は完了
>
> 記述
> DATA_DIR=0;//RA0出力
> DATA_PIN=0;//RA0_LOWを出力
>
> PIC16F84A
> IDE4.15
> XC8_1.45
> ご指導をお願いいたします

ポートの定義方法 投稿者:sontonsan 投稿日:2018/03/05(Mon) 21:57:32 No.1120

ポートの定義方法と使い方を教えてください

#byte PORTA=4
#bit DATA_PIN=POTRA,0
#bit DATA_DIR=TRISA,0
設定は完了

記述
DATA_DIR=0;//RA0出力
DATA_PIN=0;//RA0_LOWを出力

PIC16F84A
IDE4.15
XC8_1.45
ご指導をお願いいたします

Re: PIC24F SFR 投稿者:バルーン 投稿日:2018/02/22(Thu) 17:15:10 No.1113

MPLAB Code Configurator(MCC )というプラグインを覚えて使うと、設定が視覚で出来るのです。名前の通り設定などをコードで出してくれるんです。高度で複雑なコードですが、素晴らしい動きをしてくれます。MCCではCCP MODEでPWMを使う設定になります。もしかしたら極稀にサンプルプログラムはバージョンによって相性がある事もあるかもしれません。でも、覚えると毎日が楽しいですよ。

| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |

- WebForum -