リサーチ115 > ISR
多数のネットショップからISR関連の商品を探して一覧表示しています。
|
サイバネテック LK-ISR6142-23PORT iSR6142-CK用23サーバー/論理ポート機能ライセンス サイバネテック iSR6142-CK用23サーバー/論理ポート機能ライセンス LK-ISR6142-23PORT iSR6142-CK用23サーバー/論理ポート機能ライセンス ... |
|
|
サイバネテック LK-ISR6142-SW iSR6142-CK用SmartWrite機能ライセンス サイバネテック iSR6142-CK用SmartWrite機能ライセンス LK-ISR6142-SW iSR6142-CK用SmartWrite機能ライセンス ... |
|
|
CISCO ISR880-SW-SPARECD= Software CD for ISR 880 CISCO Software CD for ISR 880 ISR880-SW-SPARECD= ... |
|
|
サイバネテック ISR6142-CK Multi-Protocol Router ISR6142-CK サイバネテック Multi-Protocol Router ISR6142-CK ISR6142-CK FCポート x2 iSCSIポート x2 16ファイバーチャネルデバイス 単一電源装備 ... |
|
|
中古再生ルータ CISCO Cisco ISR 2800シリーズ Cisco ISR 2801 ルータ(CISCO2801) 中古再生ルータ CiscoISR 2800シリーズ Cisco ISR 2801 ルータ(Cisco2801)(サービス統合型ルータ:AC 電源、FE × 2、インターフェイス カード スロット × 4、PVDM スロット × 2、AIM × 2、および Cisco IOS IP Base ソフトウェア)... |
|
|
中古再生ルータ CISCO Cisco ISR 2800シリーズ Cisco ISR 2801 ルータ(CISCO2801) 中古再生ルータ CiscoISR 2800シリーズ Cisco ISR 2801 ルータ(Cisco2801)(サービス統合型ルータ:AC 電源、FE × 2、インターフェイス カード スロット × 4、PVDM スロット × 2、AIM × 2、および Cisco IOS IP Base ソフトウェア)... |
|
|
中古再生ルータ CISCO Cisco ISR 2800シリーズ Cisco ISR 2801 ルータ(CISCO2801) 中古再生ルータ CiscoISR 2800シリーズ Cisco ISR 2801 ルータ(Cisco2801)(サービス統合型ルータ:AC 電源、FE × 2、インターフェイス カード スロット × 4、PVDM スロット × 2、AIM × 2、および Cisco IOS IP Base ソフトウェア)... |
|
|
中古再生ルータ CISCO Cisco ISR 2800シリーズ Cisco ISR 2801 ルータ(CISCO2801) 中古再生ルータ CiscoISR 2800シリーズ Cisco ISR 2801 ルータ(Cisco2801)(サービス統合型ルータ:AC 電源、FE × 2、インターフェイス カード スロット × 4、PVDM スロット × 2、AIM × 2、および Cisco IOS IP Base ソフトウェア)... |
|
|
中古再生ルータ CISCO Cisco ISR 2800シリーズ Cisco ISR 2801 ルータ(CISCO2801) 中古再生ルータ CiscoISR 2800シリーズ Cisco ISR 2801 ルータ(Cisco2801)(サービス統合型ルータ:AC 電源、FE × 2、インターフェイス カード スロット × 4、PVDM スロット × 2、AIM × 2、および Cisco IOS IP Base ソフトウェア)... |
|
|
中古再生ルータ CISCO Cisco ISR 2800シリーズ Cisco ISR 2801 ルータ(CISCO2801) 中古再生ルータ CiscoISR 2800シリーズ Cisco ISR 2801 ルータ(Cisco2801)(サービス統合型ルータ:AC 電源、FE × 2、インターフェイス カード スロット × 4、PVDM スロット × 2、AIM × 2、および Cisco IOS IP Base ソフトウェア)... |
|
|
中古再生ルータ CISCO Cisco ISR 2800シリーズ Cisco ISR 2801 ルータ(CISCO2801) 中古再生ルータ CiscoISR 2800シリーズ Cisco ISR 2801 ルータ(Cisco2801)(サービス統合型ルータ:AC 電源、FE × 2、インターフェイス カード スロット × 4、PVDM スロット × 2、AIM × 2、および Cisco IOS IP Base ソフトウェア)... |
|
|
中古再生ルータ CISCO Cisco ISR 2800シリーズ Cisco ISR 2801 ルータ(CISCO2801) 中古再生ルータ CiscoISR 2800シリーズ Cisco ISR 2801 ルータ(Cisco2801)(サービス統合型ルータ:AC 電源、FE × 2、インターフェイス カード スロット × 4、PVDM スロット × 2、AIM × 2、および Cisco IOS IP Base ソフトウェア)... |
|
|
サイバネテック 6200-P01-B-CK-X FC HA iSR6250用電源 6200-P01-B-CK-X サイバネテック FC HA iSR6250用電源 6200-P01-B-CK-X 6200-P01-B-CK-X 10GbE iSCSI/8Gb FC HA Platform iSR6240用交換電源モジュール ... |
|
|
サイバネテック 6260-B10-N-CK-X FC HA Platform iSR6250 6260-B10-N-CK-X サイバネテック FC HA Platform iSR6250 6260-B10-N-CK-X 6260-B10-N-CK-X iSR6260用ブレード 4-8Gb FCポート 2-10GbE iSCSI ポート 1048 iSCSIイニシエーター対応 ... |
|
|
サイバネテック LK6000-05TDM iSR6240ブレード用 5TB Data Migration ライセンス サイバネテック iSR6240ブレード用 5TB Data Migration ライセンス LK6000-05TDM iSR6240ブレード用 5TB Data Migration ライセンス ... |
|
|
サイバネテック LK6000-10TDM iSR6240ブレード用 10TB Data Migration ライセンス サイバネテック iSR6240ブレード用 10TB Data Migration ライセンス LK6000-10TDM iSR6240ブレード用 10TB Data Migration ライセンス ... |
|
|
サイバネテック LK6000-1AUDM iSR6240ブレード用 アレイユニット Data Migration ライセンス サイバネテック iSR6240ブレード用 アレイユニット Data Migration ライセンス LK6000-1AUDM iSR6240ブレード用 アレイユニット Data Migration ライセンス ... |
|
|
サイバネテック LK6000-50TDM iSR6240ブレード用 50TB Data Migration ライセンス サイバネテック iSR6240ブレード用 50TB Data Migration ライセンス LK6000-50TDM iSR6240ブレード用 50TB Data Migration ライセンス ... |
|
|
ISR サン=サーンス:序奏とロンド・カプリチオーソ|全音 ISR(International Standard Repertoires) for Violin ISR(International Standard Repertoires)は、全世界で最もスタンダードな管・弦楽器のレパートリー・シリーズです。... |
|
|
ISR ラヴェル:ツィガーヌ|全音 ISR(International Standard Repertoires) for Violin ISR(International Standard Repertoires)は、全世界で最もスタンダードな管・弦楽器のレパートリー・シリーズです。... |
ヤフー知恵袋から「ISR」に関する疑問・質問・口コミ情報をピックアップ。プチ情報があるかも!?
質問
PIC18F1320を使用。外部割り込みRB1(INT1)に波形を入れて、その立ち上がりに同期させて、RB6に出力させようとしています。その場合、INT1信号から、所望の遅延と"H"の期間幅を数種類作成しています。下記は、割り込み(高位)の部分のみです。外部割り込みRB1(INT1)の立ち上がりに同期させて、RB0とRB2の条件により、4種の波形を作りたいのですが、if文で分岐させる場合、実行時間が相当長く、RB1(INT1)からの遅れ時間や、"H"の期間幅が簡単に制御できなく困っています。やり方が合っているかも不明です。良い方法を教えてください。(Cコンパイラ使用)#pragma interrupt high_isr //割り込み処理関数宣言 void high_isr (void){INTCON3bits.INT1IE=0; //外部割込みINT1の禁止INTCONbits.PEIE=0; //低位割り込み禁止INTCONbits.GIE=0; //全割り込み禁止INTCON3bits.INT1IF=0; //INT1の割り込みフラグをリセット LATBbits.LATB6 = 0; if(PORTBbits.RB0==0 && PORTBbits.RB2==0){ LATBbits.LATB6 = 1; Nop(); //wait time us Nop(); //wait time us Nop(); //wait time us Nop(); //wait time us } if(PORTBbits.RB0==0 && PORTBbits.RB2==1){ Nop(); //wait time us LATBbits.LATB6 = 1; Nop(); //wait time us Nop(); //wait time us Nop(); //wait time us } if(PORTBbits.RB0==1 && PORTBbits.RB2==0){ Nop(); //wait time us Nop(); //wait time us LATBbits.LATB6 = 1; Nop(); //wait time us Nop(); //wait time us } if(PORTBbits.RB0==1 && PORTBbits.RB2==1){ Nop(); //wait time us Nop(); //wait time us Nop(); //wait time us LATBbits.LATB6 = 1; Nop(); //wait time us } INTCON3bits.INT1IE=1; //外部割込みINT1の許可INTCONbits.PEIE=1; //低位割り込み許可INTCONbits.GIE=1; //全割り込み許可}
ベストアンサー
PICは使ったことありませんが、void func1(void){LATBbits.LATB6 = 1;Nop(); //wait time usNop(); //wait time usNop(); //wait time usNop(); //wait time us }void func2(void){Nop(); //wait time usLATBbits.LATB6 = 1;Nop(); //wait time usNop(); //wait time usNop(); //wait time us }/* func3,func4も同様に。*/void (*func[])()={func1,func2,func3,func4};void high_isr (void){int bstat=0;INTCON3bits.INT1IE=0; //外部割込みINT1の禁止INTCONbits.PEIE=0; //低位割り込み禁止INTCONbits.GIE=0; //全割り込み禁止INTCON3bits.INT1IF=0; //INT1の割り込みフラグをリセットLATBbits.LATB6 = 0;bstat= PORTBbits.RB0+PORTBbits.RB2*2;func[bstat];INTCON3bits.INT1IE=1; //外部割込みINT1の許可INTCONbits.PEIE=1; //低位割り込み許可INTCONbits.GIE=1; //全割り込み許可}などとすればつきはだいぶ抑えられるのではないかと。要はif文を使うと条件成立/非成立で時間が変わるから、テーブルで処理する、というこで。
質問
PIC18F1320を使用して、外部割り込みRB1(INT1)動作をしています。通常処理から割り込み処理へは入るのですが、割り込み動作開始まで、8usも掛かります。これが実力なのでしょうか?クロック周波数は10MHZです。C言語にて、高位優先部割り込み部とメインプログラムを下記しました。外部割り込み信号からの遅延が少なく動作できる方法を教えてください。// 高位優先割り込み関連の記述 ==#pragma code high_vector=0x8 //高位レベル割り込みvoid high_interrupt (void){_asmGOTO high_isr_endasm}#pragma code //デフォルトコードセクションに戻る#pragma interrupt high_isr //割り込み処理関数宣言void high_isr (void){INTCON3bits.INT1IE=0; //外部割込みINT1の禁止INTCONbits.PEIE=0; //低位割り込み禁止INTCONbits.GIE=0; //全割り込み禁止INTCON3bits.INT1IF=0; //INT1の割り込みフラグをリセットPORTBbits.RB5=1; //RB5ポートのオンPORTBbits.RB6=1; //RB6ポートのオンINTCON3bits.INT1IE=1; //外部割込みINT1の許可INTCONbits.PEIE=1; //低位割り込み許可INTCONbits.GIE=1; //全割り込み許可}// メインプログラムvoid main (void){TRISB = 0b00000011; // RB0/1:input その他outputTRISA = 0xFF; // ALL A inputOpenRB1INT(PORTB_CHANGE_INT_ON & //ポートRB1の外部割込みオンFALLING_EDGE_INT & //立下りエッジでオンPORTB_PULLUPS_OFF //Bポートの抵抗プルアップOFF);RCONbits.IPEN=1; //割り込み優先順位制御ON(0:優先順位制御OFF)INTCON3bits.INT1IP=1; //INT1の割り込みを高順位割り込みにセット(0:低位割り込み)INTCON3bits.INT1IE=1; //INT1の割り込みを許可INTCON2bits.INTEDG1=0; //立下がりエッジでオン INTCONbits.PEIE=1; //低位割り込み許可INTCONbits.GIE=1; //全割り込み許可 while(1){ //通常の処理PORTBbits.RB5=0; //RB5ポートのオフPORTBbits.RB6=0; //RB6ポートのオフ} } //メイン// =======
ベストアンサー
クロック周波数は10MHzとのことですが、PLLで4逓倍して40MHzで使っているのか、10MHzそのままで動かしているのか、どちらなんでしょうか。PICの場合、1命令を処理するのに4サイクル必要なので、クロックが10MHzであれば1命令で0.4usを要することになります。8usというと20命令ですから、C言語レベルで応答時間を測っているのであればそんなもんじゃないかな・・・。
質問
PIC16F88で回路を組んだのですがうまく動きません。どこがおかしいのでしょうか?7セグメントLEDでA~Gの表示をランダムで表示させるプログラムです。最初に1~9まで繰り返し表示。INT入力割り込みでA~Gのランダム表示を開始するプログラムです。RB0が入力、RB1~RB7が7Seg出力です。使用PICは16F88、コンパイラはPICC PRO Liteです。/** 宣言部*/#include <pic.h>#include <stdlib.h>#include <PIC16F88.h>#include <htc.h>#ifndef _XTAL_FREQ #define _XTAL_FREQ 4000000#endif#define _LEGACY_HEADERS CONFIG (INTIO & WDTDIS & WRTDIS & UNPROTECT & MCLRIS & BORDIS & LVPDIS & DEBUGDIS);#define _LEGACY_HEADERS CONFIG (IESODIS & FCMDIS);int a[10] = {0x80,0x18,0xB7,0xBC,0xD8,0xEC,0xEE,0x78,0xFE,0xF8}; //数字表示int b[7] = {0xFA,0xCE,0x66,0x9E,0xE6,0xE2,0x6E}; //A~G表示int t=1; //パルスカウントint c=0; //9秒カウントvoid delay_100ms(unsigned int time); //関数の宣言void main(){ CMCON = 0x07; ANSEL = 0x00; TRISB = 0x01; //最初0秒のみ割り込み無し PORTB = a[c]; delay_100ms(10); c++; //割り込み許可開始 INTEDG = 0; INTF = 0; INTE = 1; GIE = 1; while(1){ if(c < 10){ //10秒くるまでは・・・ PORTB = a[c]; delay_100ms(10); c++; } else{ //10秒にきたら・・・ t = 0; c = 1; } }}/** 100msec遅延関数*/void delay_100ms(unsigned int time){ while(time){ __delay_ms(20); t++; __delay_ms(20); t++; __delay_ms(20); t++; __delay_ms(20); t++; __delay_ms(20); t++; time--; } }/** 立ち上がりエッジ割り込み*/interrupt isr(){ int r; int i = 10 * c; srand(t); //乱数の発生系列をボタンのタイミングから生成 while(1){ r = rand()%6+0; //乱数を代入 PORTB = b[r]; //7seg数字表示出力 delay_100ms(i); //設定秒数遅延 } }
ベストアンサー
/*gibsonibanezさん へまず、問題の切り分けをして下さい。1.割り込みを用いない時はLEDは光るのか?(NG:LED初期化かLEDがおかしい)2.割り込みは入るのか?(NG:割り込み設定がおかしい)1と2はクリアしているとしまして…割り込み関数の中で、while(1){ } が使われているのですが、break;命令が無く、脱出していないように思います。これでは、割り込みが終了せず、多重割り込みが発生して、スタックオーバーフローを引き起こすか、多重割り込みが許可されていない場合は、割り込みが1度しか発生しないのではないかと思いますがどうですか?間違っていたら、ごめんなさい。m(_ _)m*//** 立ち上がりエッジ割り込み*/interrupt isr() { int r; int i = 10 * c; srand(t); //乱数の発生系列をボタンのタイミングから生成 while(1) {//■■■このループからはいつ抜けるんでしょうか?■■■ r = rand()%6+0; //乱数を代入 PORTB = b[r]; //7seg数字表示出力 delay_100ms(i); //設定秒数遅延 }}//以上です。m(_ _)m
質問
PIC-PIC間の通信をUSART通信で文字列の受信をするとLEDが反応するようなプログラムを書きたいのですが、うまくいきません。送信側は、puts(”WIDE")を送信しているようなのですが、受信側プログラムがうまくいっていないようです。PIC、C言語共に、やり始めたところでどこが悪いか全くわかりません。受信側プログラムの間違えているところを教えていただけると助かるのですが…ご教授よろしくお願いいたします。受信プログラム↓#include<16f886.h>#use delay(CLOCK = 10000000)#use rs232(BAUD=9600,XMIT = PIN_C6,RCV = PIN_C7)#fuses HS,NOWDT,NOPROTECT,PUT,BROWNOUT,NOLVP,MCLR,NOIESO,NOFCMEN,NODEBUG,BORV40#include<string.h>char buf[5];int i,t;char ab[6];#int_rdavoid isr_rcv(){char data;data = getc();if(data != '\r' && data != '\¥n') {buf[i] = data;i++;if(i > 3){ab[t] = buf[i];i=0;} }else{buf[t] = 0;}}void main(){char ji[5] = "WIDE";setup_comparator(nc_nc_nc_nc);enable_interrupts(INT_RDA);enable_interrupts(GLOBAL);while(1){{output_low(PIN_B7); }{if(strcmp(ab[t],ji)){output_low(PIN_B5);ab[t] = 0;}elseoutput_high(PIN_B5);}}} .
ベストアンサー
外野ですみませんが、変数tは何がしたいのでしょうか?初期化もしていないし、値の操作も一切ないですよね。if(strcmp(ab[t],ji))これも文法としておかしいです。abは一次元配列ですから、ab[t]はchar型データとなるため、strcmp関数の第一引数の型と一致しませんから、ワーニングが出ているのではないかと思うのですが。なんかいろいろおかしいですね。やり方としては、受信割り込み処理側ではデリミタ(CR+LFなど)を受信するまで受信キャラクタを順次バッファに格納して、デリミタを検出したら外部変数でフラグを立て、main関数側ではそのフラグが立ったときに文字列比較をするような設計にしてみるとうまくいくと思いますが。もちろん、意図しない文字列を受信したときにバッファを破棄するなど、例外処理も必要ですが。追記まず、外部変数iとtについて、初期値を入れている箇所がどこにもありません。これはまずいです。C言語の仕様として、外部変数は勝手に初期化はしてくれません。一般に、マイコンに内蔵されたRAMや、外部に接続されたRAMの中身は、電源投入時は不定値になっています。当然外部変数はRAMのある領域が割り当てられますから、不定値のままプログラムを動かしてしまったら、どんな結果になるかわからないのです。マイコン用のコンパイラの場合は、ご丁寧にそれらの領域をゼロクリアしてくれるものも存在しますが、そういう手段に頼るのは他のコンパイラを使ったときにミスに繋がりますので、あまり良くないでしょう。今回使われているCCS Cコンパイラの場合はどう処理されていたか失念してしまいましたが、仮に前述したように不定値だったとしたら、buf[i] = dataとしたときに一体どこのアドレスにdataの値が代入されるのかわからないのです。そのようなことにならないように、main関数の冒頭でi = 0、t = 0といった初期値の設定をするべきです。次に、デリミタを検出したらab[t] = buf[i]によって文字列をabという配列にコピーしているつもりなのではないかと思うのですが、これではコピーしたことになりません。これはちょっとここで説明するのはやっかいだなあ・・・。配列変数とはどういうものなのか、文字列は配列変数にどのように格納されているのかということを、C言語の入門本や入門サイトで少し学習された方が良いのではないかと思います。
質問
PIC-PIC間の通信をUSART通信で文字列の受信をするとLEDが反応するようなプログラムを書きたいのですが、うまくいきません。送信側は、puts(”WIDE")を送信しているようなのですが、受信側プログラムがうまくいっていないようです。PIC、C言語共に、やり始めたところでどこが悪いか全くわかりません。受信側プログラムの間違えているところを教えていただけると助かるのですが…ご教授よろしくお願いいたします。受信プログラム↓#include<16f886.h>#use delay(CLOCK = 10000000)#use rs232(BAUD=9600,XMIT = PIN_C6,RCV = PIN_C7)#fuses HS,NOWDT,NOPROTECT,PUT,BROWNOUT,NOLVP,MCLR,NOIESO,NOFCMEN,NODEBUG,BORV40#include<string.h> char buf[5]; int i,t; char ab[6]; #int_rda void isr_rcv(){ char data; data = getc(); if(data != '\r' && data != '\¥n') { buf[i] = data; i++; if(i > 3) { ab[t] = buf[i]; i=0;} }else{buf[t] = 0;} } void main(){char ji[5] = "WIDE";setup_comparator(nc_nc_nc_nc);enable_interrupts(INT_RDA);enable_interrupts(GLOBAL); while(1){{ output_low(PIN_B7); }{ if(strcmp(ab[t],ji)) { output_low(PIN_B5); ab[t] = 0; } else output_high(PIN_B5);}}}
ベストアンサー
見た感じ、少なくとも文字列の扱い方 (得に t と ab[] 】の扱いがおかしい気がします。PIC の使い方というより C プログラムに問題があります。まずはこのプログラムを PC に移植し、そこの C で望みとおり動くか試してみるのがいいと思います。
このページはWebサービスを利用して作成されています。詳しくは以下のページをご覧ください。