naw_okのプロフィール

@naw_ok naw_ok
ありがとう数0
質問数0
回答数4
ベストアンサー数
1
ベストアンサー率
100%
お礼率
0%

  • 登録日2012/05/06
  • 性別男性
  • 職業無職
  • 都道府県千葉県
  • マイコンの入力読み飛ばしPIC

    PICマイコンを使用して、インバータ駆動の三相モータのモータ回転回数を、フォトセンサで計数しています.フォトセンサとPICの入力はフォトカプラで絶縁して接続しています. PICには、モータが10回転(センサから10回出力を受けたら)したら1回外部に出力するという分周回路機能を持たしています. しかし特定の周波数(今回の場合は約42.1Hz)の時のみ、10回ではなく11回出力を受けないと1回出力しなくなってしまいます.しかも絶対ではなく、10回の時もあれば11回の時もあるという動作です. センサの出力をオシロで観察したところ、特にノイズや立ち上がりのもたつきなどはありませんでした. 多分ですが、マイコンが誤動作していると考えられますが、どのようにな対策案がありますでしょうか?電源ピン付近にパスコンは接続済です. 何卒ご教授宜しく御願い致します.

  • PIC 初心者で行き詰まりました(汗、、、)

    PIC初心者です。よろしくお願いします。 PIC16F84Aを使って 「ポートA 0bIt 」 に入力があったとき(1になったとき) ラベルの「OPEN」に飛びポートBのLEDが一秒点灯。 「ポートA 1bit 」に入力があったとき ラベルの「CLOSE」に飛びポートBのLEDが一秒点灯。 これだけのプログラムなのですが MPLAB IDE v8.63で Debug all すると ;の記述のところで表記のエラーが出ます。 プログラムはこちらです。 list P=pic16f84a include "p16f84a.inc" __CONFIG _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF CNT1     EQU   0CH CNT2    EQU   0DH CNT3     EQU  0EH       ORG    0      GOTO    MAIN           MAIN      BSF    STATUS,RP0      MOVWF    TRISA      CLRF    TRISB      BCF    STATUS,RP0      CLRF    PORTB      CLRW LOOP      BTFSC    PORTA,0      GOTO   OPEN      BTFSC   PORTA,1      GOTO    CLOSE     ;ここで「Symbol not previously defined (CLOSE)」 のエラー                        GOTO    LOOP OPEN      MOVLW    010H      MOVWF    PORTB      CALL   TIMER3    ;ここでSymbol not previously defined (TIMER3)エラー                             CLRF    PORTB      END CLOSE   MOVLW    020H      MOVWF    PORTB      CALL   TIMER3      CLRF   PORTB      END TIMER1     MOVLW    D'62'       MOVWF    CNT1 LOOP1     NOP       DECFSZ    CNT1,1       LOOP1       RETURN TIMER2     MOVLW    D'100'       MOVWF    CNT2 LOOP2     NOP       CALL    TIMER1       DECFSZ    CNT2,1       goto     LOOP2       RETURN TIMER3     MOVLW    D'100'       MOVWF    CNT3 LOOP3     NOP       CALL    TIMER2       DECFSZ    CNT3,1       goto     LOOP3       RETURN      END 何日も堂々巡りをしてまして埒があかないので質問させていただきました。 どこが間違えているのでしょうか???? よろしくお願いいたします。

  • PIC mainループについて

    PICマイコン+PICKit3で簡単なプログラムを作成して遊んでいるのですが、 ふと疑問に思ったことがあるので、質問します。 プログラムは2種類の値を用意し、スイッチの入力を見て片方をLCDに表示するといった 簡単なものですが、デバッグ中にmainプログラムの最終行まで実行した後、 再度mainプログラムの頭に戻ったとき、RAMの値がすべてクリアされている ことに気が付きました。 当初の目論見ではRAMの値を使用して表示を切り替えるつもりだったので、少し困りましたが、 方法を変えて完成させました。少し調べてみると、mainプログラムが頭に戻ってきた時、startup.asm のファイルを通り、RAMの値をクリアしていることが分かりました。 そこで質問なのですが、mainプログラムが頭に戻ってくるとRAMの値は必ずクリアされてしまう ものなのでしょうか?そうだとすると、RAMの値を残したい場合はどうすれば良いのでしょうか? ちなみにコンパイラはHITEC PICC-18です。

  • PIC mainループについて

    PICマイコン+PICKit3で簡単なプログラムを作成して遊んでいるのですが、 ふと疑問に思ったことがあるので、質問します。 プログラムは2種類の値を用意し、スイッチの入力を見て片方をLCDに表示するといった 簡単なものですが、デバッグ中にmainプログラムの最終行まで実行した後、 再度mainプログラムの頭に戻ったとき、RAMの値がすべてクリアされている ことに気が付きました。 当初の目論見ではRAMの値を使用して表示を切り替えるつもりだったので、少し困りましたが、 方法を変えて完成させました。少し調べてみると、mainプログラムが頭に戻ってきた時、startup.asm のファイルを通り、RAMの値をクリアしていることが分かりました。 そこで質問なのですが、mainプログラムが頭に戻ってくるとRAMの値は必ずクリアされてしまう ものなのでしょうか?そうだとすると、RAMの値を残したい場合はどうすれば良いのでしょうか? ちなみにコンパイラはHITEC PICC-18です。