問題タブ [mikroc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
serial-port - pic16F788 :mikroC の uart 経由でデータを受信
シリアル ポート経由で pic にデータを送信する Java コードを作成しました。次に、マイクロコントローラーをプログラムしてデータを読み取り、1 を受信した場合は PortD.RD6=1 を、0 を受信した場合は PortD.RD6=0 にする必要があります。このコードを試してみましたが、多くのエラーが発生します。これは私の最初の mikroC プログラムなので、これらのエラーを管理する方法が本当にわかりません。
c - cでマイクロコントローラ用の新しいポートを定義する方法
仮想ポートまたは変数バインドを [porta.1,porta.2,portc.1,portc.2] で定義する必要があります。これは、使用中のマイクロ コントローラー (PIC18F4550) で使用可能なすべてのポートの一部のピンがあり、空きポートがないためです。 ;
組み込み用の C プログラミングの助けが必要です (mikrocForPIC は私の IDE です)。以下のようなものが必要です:
次の目的で使用します。
できたのは覚えていますが、本当の構文を思い出せません!?
助けてください
ありがとう
c - コードの実行は常にelseステートメントに入ります
私のソースコードで非常に奇妙なことが起こります。次の関数はうまく機能し、パスワードが正しい場合は 'y' を出力し、正しくない場合は 'n' を出力します。しかし、いくつかの UART1_Write および Delay 関数を else ステートメントに追加すると、バグが出てきて、パスワードが "zxc" (正しい) であっても、常に else ステートメントに入ります。私は PIC v6.0.0 用に MikroC PRO を使用しています。ロボット システムは PIC18F452 とそれに接続された RN-42 Bluetooth モジュールで構成されています。BluetoothとTeraTermを備えたラップトップでテストしています。
詳細情報: http://instagram.com/p/pLnU9eDL8z/#
これはうまく機能するルーチンです。
このバージョンのルーチンは、常に strcmp(input, password) == 0 の部分の ELSE ステートメントに入ります。
RN-42 をコマンド モードにして、パスワードが間違っている場合にユーザーを切断するには、これらすべての追加シンボルを送信することが重要です。問題を解決するのを手伝ってください。どんなアイデアでも大歓迎です!
c - UART1_Read_Text() の問題
私は PICKit3、PIC v6.0.0 用の MikroC PRO、PIC18F45 @ 8MHz、および RN-42 Bluetooth モジュールを使用しています。ラップトップと Android アプリの両方から RN-42 モジュールに接続し、パスワードを送信しています。奇妙なことに、PIC はパスワードが正しいと言うことがありますが、そうでないこともあります。同じ文字列を送信しています。テスト中、たまたま最初の 1 回だけパスを受け入れず、他のすべての試みは受け入れられました。UART ボーレートは、PIC と RN-42 の両方で 9600 に設定されています。RN-42 の RTS と CTS が接続されていません。
私も試しました:
しかし、それは同じです...何が問題なのですか、それは私のコードにありますか、それともMikroC関数内で発行することは可能ですか?
UARTx_Read_Text() プロトタイプ:
UARTx_Read_Text() 説明:
デリミタ シーケンスが検出されるまで、UART 経由で受信した文字を読み取ります。読み取りシーケンスはパラメーター出力に格納されます。区切り文字シーケンスは、パラメーター区切り文字に格納されます。
これはブロッキング呼び出しです。デリミタ シーケンスが必要です。それ以外の場合、プロシージャは終了します (デリミタが見つからない場合)。
パラメーター :
出力: 受信したテキスト デリミタ: 受信した文字列の終わりを識別する文字のシーケンス 試行: デリミタ シーケンスが期待される受信文字数を定義します。Attempts が 255 に設定されている場合、このルーチンは連続して Delimiter シーケンスを検出しようとします。
例:
シーケンス「OK」が受信されるまでテキストを読み取り、受信したものを返信します。
c - PIC16F1459 24LC32 での I2C マスター Ack の問題
私は奇妙な問題に直面しています。PIC16F1459 で常にビット バンギン I2C 機能を使用していましたが、今は MSSP (SPI、I2C マスター スレーブ ペリフェラル) を使用したいと考えています。だから私は、データシート、開始、停止などに従って関数を書き始めました。私が抱えている問題は、PICがI2C EEPROMに送信したデータにACKを返さないことです。ACK ステータスは SSPCON2.ACKSTAT で確認できることがデータシートに明確に記載されています。したがって、スレーブがデータに応答するまでこのビットをポーリングすると推測しましたが、プログラムは while ループでハングします。
そして、これが私の書き込み関数、私の I2CCheck 関数、および I2C マスター初期化関数です。
ご存知のように、24LC32A WriteProtect は VSS に接続され、A2-A1-A0 は GND に接続されているため、アドレスは 0xA0 です。4k7 プルアップは I2C ラインにあります。16MHz INTOSC の PIC16F1459。
私は完全に立ち往生しています。MSSP データシートを 5 ~ 6 回確認しましたが、問題は見つかりませんでした。手伝ってくれませんか?
そして、これが私のロジックアナライザーのプレビューです( vReadAck() 内の while を削除しています)
pic - MPLAB コードが機能しない
私は pic マイクロコントローラーのプログラミングに取り組んでおり、最近 lcd で 2 つのコードを作成しました。問題です/なぜそれが起こったのですか?これはハードウェアまたはソフトウェアのコードではないと思います。これは同じ回路であり、両方のコードがisisで機能しているためです。コードを表示したい場合は、次のとおりです。
マイクロC:
mplab:
main.c:
config.h:
matlab - pic と matlab gui 間の UART
MATLAB GUI を使用して pic マイクロコントローラと PC を接続する際に問題があります。Matlab で次のエラーが表示されます。
mikroc コードは次のとおりです。
}
ここにmatlabコードがあります:
c - C の PIC - RC0-3 を使用して独自のキーパッド スキャン ルーチンを作成する
キーパッドをスキャンする独自のルーチンを作成するように依頼されましたが、PORTC と RC0-3 のみを使用して、1,2,4,5 の 4 つの値を返すだけで済みます。 4x4 キーパッドの 2x2 配置。私が使用しているキーパッドは PORTC に接続された 4x4 キーパッドです。私はこれを教えられていませんが、それは作品の大きな部分を占めているので、解決策が得られないのはいいことですが、より多くの説明が正しい方向に私を押してくれるので、自分でできるようになります. PIC マイクロコントローラ: C のポート C RC0-RC3 のみを使用して、4x4 キーパッドで入力をスキャンします。 基本的にはこの質問ですが、そこにある回答は実際には役に立たなかったので、自分でこの質問をしてみようと思いました:)高く評価されます!