[戻る]
新着表示

Re: ADC割り込みが出来ない 投稿者:PICは初心者 投稿日:2018/04/19(Thu) 09:07:20 No.1150

自己解決しました。
結果は正常に動いていました。
ただ、MPLAB SIMでPIC32MX1xxxをデバッグした場合、なぜかタイマー1以外のタイマーとADCの割り込みはデバッグできないようです。
たとえば、タイマー1とタイマー2を使った場合、プログラムを書き込んで動作させれば実際には動いていても、MPLAB SIMではTMR2が動いていなかったりします。
ただ、デバイスをPIC32MX3xxxとかにすると全てデバッグできます。
デバイスの選択ダイアログでMPLAB SIMが黄色になっているのはこういう事なのかなと思いました。
お騒がせしました。

ADC割り込みが出来ない 投稿者:PICは初心者 投稿日:2018/04/18(Wed) 16:12:11 No.1149

はじめまして、昔8ビットのPICは使っていましたが、
PIC32が値段が安く高性能なので使いだしました。
問題はAD変換を一定周期でする為にタイマ3で変換開始して
変換終了割り込みを使おうと思っているのですが、MPLAB SIMで
IFSのビットが1になっても割り込み関数に入りません。
どうすればよいのか教えてください。
以下にコードを書きます。

#include <plib.h>

#pragma config JTAGEN = OFF
#pragma config FNOSC = FRCPLL
#pragma config POSCMOD = OFF // Primary Osc OFF
#pragma config FSOSCEN = OFF // Secondary Osc off
#pragma config FPLLMUL = MUL_20
#pragma config FPLLODIV = DIV_2
#pragma config FPBDIV = DIV_1
-- 省略--
AD1CON1 = 0x0004;
// AD1CON1 = 0x0044;
AD1CON2 = 0x0000;
AD1CON3 = 0x0101;
AD1CHS = 0x00000000;
AD1CSSL = 0x00000000;
AD1CON1SET = 0x8000;
IFS0CLR = 0x10000000;
IPC5SET = 0x1F000000;
IEC0SET = 0x10000000;

INTEnableSystemMultiVectoredInt();
-- 省略--
void __ISR(_ADC_VECTOR, ipl7) AD0Interrupt(void)
{
IFS0CLR = 0x10000000;
ADC_Value = ADC1BUF0;

使っているのはAD0のみでIO設定や基本的な事は出来ています。
変換終了のIFS0の28ビットが1になります。
それから、割り込み関数の2つ目の引数が分からないのですが。
よろしく、お願いします。

Re^4: PIC24F SFR お礼 投稿者:Anken 投稿日:2018/04/18(Wed) 09:05:38 No.1148

アルレッキーノ様
重ね重ねありがとうございます。マニュアルの類は英文、和文、ことごとく収集しました。私はPWM制御を基本に行いたいので、PWMを検討しています。24FはA/Dの入出力が多くのピンに割付でき、PWM出力も複数あり、もともと評価ボードについていたので、これでなんとかしたいと思っていますが、ご教示いただいたものでも似たようなことができれば、そちらで学習したいと思います。最終的にはDSPを使えるようになりたいとも思っています。問題は、チュウトリアルが簡単にできてしまうため、各要素作業の内容を理解していないことに尽きます。16F1705ではWEBのプログラムを少し手直しし、1年ほどコンバータの実験を行なっていました。次の段階に来て、16bitに格上げしようとして、脳みそ、リセット。includeやコンフィギュレーションの概念がないことや、組み込みマイコンの一連のルーチンワークに出てくる事柄が分かっていないからだと思います。入門書を読んでもマイコンの基礎では私が理解したいことについて記述がないですし、PICごとの説明では、ファミリーに共通した事項と固有事項の区別がつかないというところが課題です。経験が浅く、色々なCPUの知識が無いことも一因だと思います。アルレッキーノ様の助け舟はとても助かっております。ありがとうございます。

Re^3: PIC24F SFR お礼 投稿者:アルレッキーノ 投稿日:2018/04/17(Tue) 12:52:53 No.1147

Anken様、
参考にしていただけたならよかったです。

老婆心ながら、ボードに付属のPIC24F16KA102はメモリ容量も機能も少なく情報も少ないです。
PIC24Fについて基本的な学習なら、このボードで利用できるMCUとしてはPIC24FJ64GA002がお勧めです。
CTMUはありませんが、標準的なPICなのでネット上でも情報が得やすいと思います。
後閑先生の本でも頻繁に取り上げられていますしね。
また、Microchipのサイトで得られるPIC24Fについての個々の日本語資料もおおむね当てはまります。
最終的にはMCUのマニュアルで確認する必要がありますが、これは英語だけかな?

この時に少しハードルになるのがピン割り付け機能だと思います。
mikroCでもインラインアセンブラの機能があり、ピンのロック、アンロックなど記述できますが、Microchipのサンプルコードはそのままでは受け付けません。
ただ、mikroCにはピン割り付けのライブラリがあります。
Helpで"PPS_Mapping"を検索すれば使用法がわかります。

このようにちょっとわかりづらいmikroCですが、もちろんメリットがあるので使っています。
MikroElektoronikaはPICを応用した製品を数多く出していて、mikroCはライブラリを用意して対応しています。
その中にMikromediaというものがあります。
高機能のMCUと周辺チップを載せた基板がTFT-LCDと一体になった、よくまとまったユニットです。
LCDの制御はコントローラチップに依存しますから全くライブラリがないと、線一本、文字一字表示するのも苦労します。
PICではMPLABが標準開発環境ですが、私の場合はMikromediaを使いたいためにmikroCを選んだわけです。

C言語、MCU、開発環境を同時に学習するのはなかなか大変ですね。
ご健闘をお祈りします。

Re^2: PIC24F SFR お礼 投稿者:Anken 投稿日:2018/04/17(Tue) 10:23:04 No.1146

アルレッキーノ様
しばらく途方にくれておりましたが、天の声でしょうか、ご教示の数々、ありがとうございます。お教えいただいたことは全てトライさせていただきます。
とんでもないものに足をつ込んだらしいことはわかりました。参考書も24Fの第1版で止まっているようで、古本も少なくプレミアが着いています。アルレッキーノ様のご教示で24Fのおかれた事情も良く分かりました。再度お礼を述べさせていただきます。ありがとうございます。

Re: PIC24F SFR 投稿者:アルレッキーノ 投稿日:2018/04/16(Mon) 16:17:49 No.1145

MikroElektoronikaの「Easy24-33v6」と「mikroC PRO for dsPIC」を持っています。
この統合環境はすこし癖があり、慣れるのに苦労します。
Microchipの開発環境(MPLAB)用のソースファイルは、そのままでは使えません。

<SFRについて>
SFRとは特殊機能レジスタですから元々MCUの中に入っています。H8なら内部I/Oレジスタに相当するのかな?
MCUの型番ごとに仕様が異なりますからターゲットのMCUのマニュアルを調べる必要があります。
mikroCでもMCUごとにレジスタの名前とアドレスが定義してあり、通常はTRISAとかPORTAとかのレジスタ名でアクセスします。

<コンフィギュレーションについて>
mikroCではMCUの種類や発振器タイプなどの基本的な設定は統合開発環境内で設定します。
新規プロジェクト作成時にウィザードで設定しますが、既存プロジェクトではProject→Edit Projectで変更できます。

<include文について>
mikroCではinclude文は通常不要です。
mikroCが用意しているライブラリを使う場合は統合環境内のLibraryManagerで指定します。
これに応じてコンパイル時に統合環境内部で自動的に必要ファイルをincludeしているのだと思います。
もちろんユーザ定義のファイルは#includeして使えます。

<割込みについて>
割込みルーチンを作成する場合は、Tools→InterruptAssistant利用が簡単です。


MikroElektoronikaはセルビアの企業で、日本では情報が少ないです。
国内ではマイクロテクニカが一部製品を販売していますがサポートは期待できません。
mikroe.comのサポートサイトにはForumやLibStockなどでいろいろ情報が得られます。
ただしすべて英語です。

ご参考になれば。

Re^2: 書き込み 投稿者:uruma 投稿日:2018/04/16(Mon) 10:50:59 No.1144

リセットに電解コンデンサを入れていたんですがリセットが長すぎ、mikroprogからのリセットが短いので、mikroprogの動作ができなかったようです
コンデンサをとったら動作しました
お騒がせしました

Re^2: 書き込み 投稿者:uruma 投稿日:2018/04/14(Sat) 16:19:30 No.1143

線というか、どの信号が有効であればいいんでしょうか
電源とクロック、リセットだけなんでしょうか

Re^2: 書き込み 投稿者:uruma 投稿日:2018/04/14(Sat) 16:15:46 No.1142

mikroCを販売している会社mikroelectronicaが発売している書き込み器です
基本的にはPicKit3とおなじものです
で、VCC,GND,PGEC,PGED,RESETを使ってかくだけなので、同じだと思います
普通、HEXファイルを書くときはどの線が有効であれば書けるものなんでしょうか

Re: 書き込み 投稿者:Gokan 投稿日:2018/04/14(Sat) 15:21:45 No.1141

mikroprog ????

> 全くのPIC初心者です
> PIC32MX340でクロックとリセットだけ入れてPGEC2,PGED2でmikroprogを使って書き込もうとしたんですが、全く認識さえしてれません
> あと何を確認すればいいんでしょうか・・・

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

- WebForum -