質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.76%

  • C

    3453questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

MPLAB X IDE v4.05でプログラムを組んでいます。

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 142

haruo8219

score 6

#include <stdio.h>
#include <stdlib.h>
#include <xc.h>

// PIC16F1828 Configuration Bit Settings
// CONFIG1
#pragma config FOSC = INTOSC    // Oscillator Selection (INTOSC oscillator: I/O function on CLKIN pin)
#pragma config WDTE = OFF       // Watchdog Timer Enable (WDT disabled)
#pragma config PWRTE = OFF      // Power-up Timer Enable (PWRT disabled)
#pragma config MCLRE = OFF      // MCLR Pin Function Select (MCLR/VPP pin function is digital input)
#pragma config CP = OFF         // Flash Program Memory Code Protection (Program memory code protection is disabled)
#pragma config CPD = OFF        // Data Memory Code Protection (Data memory code protection is disabled)
#pragma config BOREN = ON       // Brown-out Reset Enable (Brown-out Reset enabled)
#pragma config CLKOUTEN = OFF   // Clock Out Enable (CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin)
#pragma config IESO = OFF       // Internal/External Switchover (Internal/External Switchover mode is disabled)
#pragma config FCMEN = OFF      // Fail-Safe Clock Monitor Enable (Fail-Safe Clock Monitor is disabled)
// CONFIG2
#pragma config WRT = OFF        // Flash Memory Self-Write Protection (Write protection off)
#pragma config PLLEN = OFF      // PLL Enable (4x PLL disabled)
#pragma config STVREN = OFF     // Stack Overflow/Underflow Reset Enable (Stack Overflow or Underflow will not cause a Reset)
#pragma config BORV = LO        // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.)
#pragma config LVP = OFF        // Low-Voltage Programming Enable (High-voltage on MCLR/VPP must be used for programming)


// クロック周波数指定
// __delay_ms()関数が使用する
#define _XTAL_FREQ 1000000

int main(int argc, char** argv) {

    // PICマイコン設定
    OSCCON = 0b01011010;  // 内部クロック周波数を1MHzに設定
    ANSELA = 0b00000000;  // すべてのピンをデジタルモードに設定
    TRISA  = 0b00001000;  // すべてのピンを出力モードに設定(ただしRA3ピンは常に入力モード)

    // 変数宣言
    unsigned short timer;   // 時間計測
    unsigned short duty;    // PWMのデューティーサイクル

    // 信号をPWM制御してスムーズな点滅制御をする
    // PWM機能のピン割り当て設定
    APFCON1bits.CCP2SEL = 1;     // PWM機能をRA5ピンに設定
    CCP2CONbits.CCP2M = 0b1100; // PWM機能を有効、active-highに設定
    CCP2CONbits.P2M = 0b00;     // RA2ピンはGPIOに設定

    // 周期(1ms)とデューティーサイクル(0.5ms)の設定
    T2CONbits.T2CKPS = 0b00;    // プリスケーラを1:1に設定
    PR2 = 249;                  // 周期を5msに設定 (249 + 1) x 4 x 1us = 5ms
    CCPR2L = 500/4;             // デューティーサイクルを0.5msに設定
    CCP2CONbits.DC2B = 0;

    // PWM制御スタート
    T2CONbits.TMR2ON = 1;

    // LEDをPWM制御
    // デューテー比は1%から99%の制御にする
    while(1) {
        // 1% -> 99%の制御
        for(duty=10; duty<=990; duty++) {
            CCPR2L = duty / 4;          // 上位8ビット
            CCP2CONbits.DC2B = duty;    // 下位2ビット
            __delay_ms(1);
        }
        // 99% -> 1%の制御
        for(duty=10; duty>=990; duty--) {
            CCPR2L = duty / 4;          // 上位8ビット
            CCP2CONbits.DC2B = duty;    // 下位2ビット
            __delay_ms(1);
        }

    }

    // 以下の命令は実行されない
    return (EXIT_SUCCESS);

}

このプログラムにhttps://github.com/danjperron/GCrashの
i2cMaster.cとMPU6050.cという参考プログラムを追加したいのですが
どこにどう追加すればよいのかわかりません。

何通りか試したのですがエラーがかえってきて
うまくpicに取り込めません。

やり方を教えていただければと思います。
よろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • ozwk

    2018/01/24 10:39 編集

    ひとつ前の質問( https://teratail.com/questions/109673 )となにか違うんですか?

    キャンセル

  • haruo8219

    2018/01/24 10:47

    ひとつ前の質問は自分がファイルを作成する場所が間違っていたということで解決いたしました。今回はそのプログラムをどう入れ込むかがわからないのです。どう入れ込んでもエラーが出てしまうため全く先に進めません。

    キャンセル

回答 1

checkベストアンサー

0

どこにどう追加すればよいのかわかりません。

while(1){
    センサの値を読み出す。
    読み出した値を好きに変換する。
    変換した値をPWM出力に設定する。
    好きなだけ待ち時間を入れる。
}

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/01/24 11:07

    自分で書いておいてアレですが
    本当にこれでよかったんですか?

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.76%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    3分タイマー ストップボタンを押しても止まらないです。

    三分タイマーですがストップボタンを押しても止まらないです。 次にリセットボタンを押すと自動的に3分からカウントが始まります。 リセットボタンを押すと表示はカウントしないで3

  • 解決済

    Arduinoの関数を呼び出し

    実行したいこと 下記の関数をループ処理の時に実行する これは、Arduinoのスピーカーを使用して音階(ド~高いドまで)を鳴らすプログラムです。 ド~高いドまでを出力したら、

  • 解決済

    L2TP/IPsecでVPN接続のトラブルシューティングについて。

    前提・実現したいこと L2TP/IPsec方式でVPN接続を行いたいです。 yamahaルーター側とmac/win/iphoneなど接続機器側での認証方式・鍵の間違いはないと思

  • 解決済

    UnityでSpriteを使って一部を透明化する方法

    最近、シーンチェンジを実装するために基礎となる画像をSpriteを用いて一部透明化しようと考えたのですが、当たり前ですが単純に配置しても基礎画像が表示されてしまいます。(以下参考画

  • 解決済

    Texture2Dをななめに切り出す方法

    Texture2Dをななめに切り出す方法を探しています。 4点を基準に画像を切り取る関数などはないでしょうか? GetPixelsの引数も一つの座標と幅、高さしかないためどう斜めに

  • 解決済

    Unityで影だけを表示させたい

    Unityでゲームオブジェクトを、ライトで真上から照らした光沢にしつつ、それに付く影はライトを上斜めから当てた感じで表示させたいと考えています。 Dlirectional ligh

  • 解決済

    ロボットがうまく進みません。コード修正お願いします

    ロボットをまず一メートルまっすぐ進ませ、左に曲がって50センチ進んで、その後逆転してまっすぐ進むにはどうすればいいでしょうか?コードは考えたのですが、なぜか最初に左に曲がってしまい

  • 解決済

    verilogでmoduleをインスタンス化した時にSyntax Error

     前提・実現したいこと 以下のベリログのコードでdecodeというmoduleをインスタンス化した時にエラーになるのですが何が原因なのでしょうか?  decodeモジュールでは16

同じタグがついた質問を見る

  • C

    3453questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。