X



トップページ電気・電子
1002コメント364KB
初めてのPIC 0x0e
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001774ワット発電中さん
垢版 |
2018/02/13(火) 21:26:39.79ID:06sF7iiY
.
  _       _    PICをさわるのは今日が初めて、という超初心者のためのスレです。
  (O>――<O)    PIC選び、PICを使った回路は、誰でも最初は不安なものです。
  / (・) (・) ヽ    恥ずかしがらずに何でも聞いてください。速攻で教えてくれますよ。
  ○ /▼\ ○    質問のしかたは、初心者質問スレの発言1を見てくださいね。
  |(ヽ二フ ) |    
  /  ̄ ̄ ̄ ヽ  
 f ヽ     / |  PIC関係のスレは、レベルに合わせて以下のスレもありますので、活用しましょう。
 ヽ \  / ノ    ・PIC専用のスレ
  | \_ )(_/ !       本家本元のPICスレです。口の悪い人もいますが、楽しくやってるみたい。
  |       |       ここの話がわかるようになれば、あなたはもう一人前のPICerです。
  |       |    ・マイコンソフト 悩み事相談室
  |   | ̄ ̄|  |      マイコンソフトやツールの質問は、こちらでどうぞ。的確な回答があります。
 (_ノ    ヽ_)

 質問する時のコツ
  ・性格の悪い回答者はスルーしよう(相手すると逆効果)
  ・素人玄人などと 上から目線の回答者は、無視してください。相手してはいけません。
  ・そこそこ良い回答が出るまでしばらく再発言しないのもあり(良回答は後に出やすい)
  ・回答者のアドバイスで後日解決したら、結果報告しよう(とても喜ばれる)
  ・回答者は、僕たち初心者に優しくしてください。あなたも通ってきた道のはずです。


 必要なソフトなど(基本無料)
統合開発環境 MPLAB X ttp://www.microchip.com/mplab/mplab-x-ide
コンパイラ (XC8 XC16 XC32) ttp://www.microchip.com/mplab/compilers (高機能版は有料)
コード生成プラグイン (MCC) ttp://www.microchip.com/mplab/mplab-code-configurator
マイクロチップ ライブラリ (MLA) ttp://www.microchip.com/mplab/microchip-libraries-for-applications


 必要なハードなど
初心者はPIC16F1、PIC18F1以降の型番で始めると無理なく始められます。
プログラムの書き込みには書き込み器が必要です。持っていない場合はPICkit3(中華クローンでもまず大丈夫)を使いましょう。
PIC一覧、スペック検索 ttp://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1005


 さ、質問どうぞ〜っ
  0x0d 2017/10/25〜  ttp://rio2016.5ch.net/test/read.cgi/denki/1508935254/
  0X0C 2017/07/27〜  ttp://rio2016.2ch.net/test/read.cgi/denki/1501157324/
  0x0B 2017/05/08〜  ttp://rio2016.2ch.net/test/read.cgi/denki/1494235320/
  0x0A 2017/01/04〜  ttp://rio2016.2ch.net/test/read.cgi/denki/1483498857/
  0x09 2016/09/07〜  ttp://rio2016.2ch.net/test/read.cgi/denki/1473238791/
  0x08 2016/04/30〜  ttp://rio2016.2ch.net/test/read.cgi/denki/1461994030/
  0x07 2016/02/05〜  ttp://wc2014.2ch.net/test/read.cgi/denki/1454648249/
  0x06 2015/07/18〜  ttp://wc2014.2ch.net/test/read.cgi/denki/1437151298/
  0x05 2015/04/07〜  ttp://wc2014.2ch.net/test/read.cgi/denki/1428391368
  0x04 2015/01/02〜  ttp://wc2014.2ch.net/test/read.cgi/denki/1420205108
0851774ワット発電中さん
垢版 |
2018/04/24(火) 07:38:13.00ID:wur0/mM1
巨大な受信バッファ持ってるPCが受信相手なら隙間だらけの送信でも全然問題なっしんぐなので
自分はTRMTポーリングで対処してます
PICが受信相手でもFIFO溜まった時点で割込みかかるので隙間だらけの送信でも負荷増えないし
0852774ワット発電中さん
垢版 |
2018/04/24(火) 07:43:30.47ID:rQtzCYq7
FIFOがたまった時点で割り込みが発生するだけだと
FIFOのデータが少ないときは受信したことがわからないので
受信してから隙間が空いた時にも割り込みがかかる
っていう回路がある
0853774ワット発電中さん
垢版 |
2018/04/24(火) 07:45:03.89ID:rQtzCYq7
PCだとRS-232Cの負荷なんて誤差レベルだが
負荷は増えてるかもしれない
0854774ワット発電中さん
垢版 |
2018/04/24(火) 07:54:48.66ID:vfSZoOUP
>>848
>先にTXREGが空となり、続いてShiftRegisterが空になったその瞬間にwレジスタから書くと
>TXREGとSR両方にコピーされてダブルってことやから
確かにこの問題は以前に話題になっていたと思う。

で、問題は、
>Errataのは回避策になってないんだよな

これは、>>839のErrataの回避策を指してのことだと思うのだけど、別の問題ってことはないですかね。
最初の問題を直したつもりで、別の問題が出てきたとか。
0855774ワット発電中さん
垢版 |
2018/04/24(火) 08:00:02.19ID:vfSZoOUP
>PICスレは非常に民度が低い信者のスレだと思ったよ
民度は眺めるものではなくて、自分でなんとかするもの。

サッカースタジアムや、羽生パレードのあとのゴミも、みんながみんなゴミを捨てなかったのではなくて、
捨てた人がいても、それを拾った人がいるから、結果としてスゲーって思ってもらえるわけだし。
0856774ワット発電中さん
垢版 |
2018/04/24(火) 08:04:19.17ID:rQtzCYq7
今気付いたけど
TRMTと書いてあるマイコンと
TMRTと書いてあるマイコンと
両方あるみたい

上のリンクのエラッタは両方TMRT
データシートのエラッタが仕様になっちゃったみたいな?
0859774ワット発電中さん
垢版 |
2018/04/24(火) 09:47:23.33ID:izqJBaBe
初めてスレで延々とやる話題かね
本スレでやればいいのに
0860774ワット発電中さん
垢版 |
2018/04/24(火) 10:55:25.39ID:elhCr7SK
>>853
そんなことはない。トータルの転送量だけ考えるとたいしたことなさそうだが、
232Cを10ポート20ポートつないでフルフルで動かすとPCの負荷はけっこう大きい。
CPU負荷だけの問題じゃないぞ。ハードやドライバの作りにもよるが。
0863774ワット発電中さん
垢版 |
2018/04/24(火) 12:05:32.06ID:JfzX5cw2
俺のエラッタ回避方法は
1. 割り込み禁止が1文字送信時間を超えるようなコーディングをしない。
2. n文字送信関数で最初の1文字送信のときにリングバッファが空ならTRMTが1になるまで待つ。
0864774ワット発電中さん
垢版 |
2018/04/24(火) 12:52:06.32ID:elhCr7SK
>>861
232や485を10や20つなぐPCなんて工場とかではザラなわけだがWindowsあたりだとけっこうコケる
TCPでセッション100張るほうがうんと負荷軽くて楽
チップセットとプロトコルが頭いいと楽だね
0865774ワット発電中さん
垢版 |
2018/04/24(火) 12:54:47.66ID:xDXYG0tm
Microchipが重視していない姿勢を鑑みるに
ごく一部のユーザーが特殊な条件で使用する時のみ
影響する事象なので
EnhancedMidrange全型番のエラッタに載せてないんだろうね
ほとんどの初心者には影響ないからスルーして良いかと
0867774ワット発電中さん
垢版 |
2018/04/24(火) 13:05:39.26ID:avxJ9V6C
>>863
最大2文字分のビジーループが発生する
稀なタイミングしかオーバーヘッドが発生しないのと
ハードが不要なのが利点か

おれのUARTエラッタ回避法は
フリーランタイマーでヤバいタイミングを調べて
可能性があればnop 1個でタイミングをずらす
ビジーループは無いがタイマーを使う
(タイマーは共用可能)
割り込み禁止期間の制限は特に無い
0868774ワット発電中さん
垢版 |
2018/04/24(火) 14:59:36.41ID:58dfx+0t
18F46K22でI2Cを使うのでMCCでMSSP1を選んだが動作しない。
EUSART1、TMR0、ADCは動作しています。
SCL1とSDA1のピンはHighのままです。
I2C1.hのEMULATED_EEPROM_Write/Readをコピペしているが、
PICKit3のデバッグでPAUSEにすると
while(status == I2C1_MESSAGE_PENDING) ;から抜け出せないようです。
MSSP2にしても同じです。
EasyタブはI2C Master/Enable MSSP/Slew Standard/SDA Hold 300nS/7bitで
I2C Clockの0x03≦0xA0≦0xFFで99.379KHzと表示されてます。
RegistersタブはBCLIとSSPIのチェックとADD=0xA0/BUF=0x0/CON1=0x28/CON2=0x0/CON3=0x8/STAT=0x80
SSP1MSKが0xFFで赤くブリンクしているのが気になります。
0869774ワット発電中さん
垢版 |
2018/04/24(火) 15:53:22.15ID:+WRSdb8B
PICエラッタの最良の対処方法はPICを使わないこと。
何故にマルチタスクも動かせないようなこんな低レベルCPUにこだわるのか?
0871774ワット発電中さん
垢版 |
2018/04/24(火) 17:02:59.56ID:X1ScF0Ni
人の財布の中覗いてケチつける
他人の家の冷蔵庫開けて食材にケチつける

朝鮮人文化には馴染めません
0872774ワット発電中さん
垢版 |
2018/04/24(火) 17:16:47.07ID:+WRSdb8B
こだわっていないし、ケチもつけてませんよぉ。
ただただ疑問に思っただけ、理由を知りたかっただけです。
PICの何がそんなに魅力なのか?
もしかしたらPIC信者ってMなのか?
ハハハ、私のレスは無視して下さい、ちょっと退屈していただけなので。
0873774ワット発電中さん
垢版 |
2018/04/24(火) 17:31:14.75ID:R0opAjvi
他の会社のCPUにもエラッタは有るんだけど
0874774ワット発電中さん
垢版 |
2018/04/24(火) 17:41:00.95ID:gijGFcCB
春になるとわくものに釣られすぎ。別人だろうけど、他の板のスレにもこの時期になるとわいてくる。
0875774ワット発電中さん
垢版 |
2018/04/24(火) 18:47:22.37ID:lIO8jw8O
去年から年中エラッタ、エラッタ吼えてますよあの人
0876774ワット発電中さん
垢版 |
2018/04/24(火) 18:57:58.16ID:bnV5Dkpe
PIC信者を NGワード化して久しいが
これがまだ続くなら エラッタ もNGワード
にしようかと。兎に角しつっこいからな。
0878774ワット発電中さん
垢版 |
2018/04/24(火) 20:45:05.51ID:xyHEfl0h
ここまでPICをdisってるエラッタおじさんはどんなCPU使ってるの?
0879774ワット発電中さん
垢版 |
2018/04/24(火) 21:54:34.61ID:bnV5Dkpe
もうウザイから、たった今、エラッタもエッタラも NGワードに登録したぜよ
0881774ワット発電中さん
垢版 |
2018/04/24(火) 22:13:46.55ID:50p198lT
>>878
文句言いながらもここを覗きに来てるって事は、根っからのPIC信者なんだろ。
0882774ワット発電中さん
垢版 |
2018/04/24(火) 23:42:55.54ID:vfSZoOUP
趣味でも仕事でも、ファンだから使う、は有りうる。
仕事でその理由は有りえない、と思う人は、そういう立場を知らないだけのこと。
なぜファンなのか、他のものの比べた上で判断したのか、なんてのは野暮。
0883774ワット発電中さん
垢版 |
2018/04/25(水) 00:04:12.68ID:S3bTZ6vT
バグを知らないで遭遇したらとんでもない時間を浪費することになるし
納期を間に合わせるために原因不明のまま対処療法の対策で納品する
なんてことにもなりかねない。
感情的にならないで有益な情報として受け入れた方がいいと思うけどな。
0884774ワット発電中さん
垢版 |
2018/04/25(水) 00:07:33.90ID:0PS/es3J
ライタを持ってるから
本を買って持ってるから
PCに環境を作ったから
使い方を覚えて染み付いてるから
買い置きが残ってるから
これまで書いたコードが流用できるから
困ったことや痛い目に遭ったことがないから

全て消極的理由だが、趣味なら乗り換えない理由としては十分
別に特段の魅力は感じてなくてもPICで良いって人間もいるんだからほっといてくれ
ほんと余計なお世話
0885774ワット発電中さん
垢版 |
2018/04/25(水) 00:48:54.42ID:MTGmtNA+
こういうのに難癖つけるやつに限って
自分の使っているチップ型式を云わないのな

AVRとかだったりするのかねぇ
0886774ワット発電中さん
垢版 |
2018/04/25(水) 03:12:38.31ID:u8fROgri
> 困ったことや痛い目に遭ったことがないから

というより、困ったことや痛い目に散々遭って、それを時間をかけて
克服してきた実績と自信があるから、違うチップでまたやり直すの
やだなあみたいな先入観があるな。

#流用できる完動するコードがある、に帰着するかもしれないが。
0887774ワット発電中さん
垢版 |
2018/04/25(水) 06:38:56.81ID:Rywnw9Xh
導入の壁乗り越えて
自分なりのお気に入りライブラリー揃えてしまうと
今更他のマイコンに乗り換えるモチベーションか
0888774ワット発電中さん
垢版 |
2018/04/25(水) 06:42:12.00ID:wRI2g9bE
PIC自体の良いところが何一つ出て来ないところが泣けるねえ
0889774ワット発電中さん
垢版 |
2018/04/25(水) 06:43:45.80ID:g4rG95E1
PICに問題があるからダメだって話はするくせに、問題のないチップは出てこない。
PICは問題が多いというが、結局のところ多かろうが少なかろうが自分が使うところにその問題があるかどうか。
バグがたとえゼロでも供給に不安があるならダメだろう。
バグは開発段階で回避できるかもしれないが、製造段階で全く互換で置き換えられるものの供給が滞るとかなりイヤ。
ユーザーが多いほど問題は既知のものになりやすい。
ネットで情報発信しているユーザーが多い方が、問題解決はしやすい。
0890774ワット発電中さん
垢版 |
2018/04/25(水) 06:49:12.00ID:g4rG95E1
>>888
いちいちまとめることもしないけれど、見えてないフリしてるだけだと思う。
勝手に泣いてろ。
0891774ワット発電中さん
垢版 |
2018/04/25(水) 07:41:17.17ID:jPiSVkL0
取るに足らない問題に当たった0.1%以下の人間がギャンギャン吠え続け
問題がないか,自分で解決したほぼ100%の人たちは黙ってる
0893774ワット発電中さん
垢版 |
2018/04/25(水) 09:56:07.04ID:lDLEToeS
DIPパッケージ、PPS、外付部品少なくて頑丈

今更な長所だけど趣味には重要だよ
0894774ワット発電中さん
垢版 |
2018/04/25(水) 10:42:37.67ID:5d9B/hP4
入手性とか考えたらホビーユースだとPICかAVRぐらいしかないし、PICの内蔵ペリフェラル機能は活用できると便利だから使ってる。
0895774ワット発電中さん
垢版 |
2018/04/25(水) 11:16:30.06ID:TIJK9eAp
>>867
リングバッファでなくてTXIEを見れば、ビジーループを最大1文字分にできることは知っているんだが、なんとなく気持ちわるくてね。
0896774ワット発電中さん
垢版 |
2018/04/25(水) 11:28:03.34ID:4yUtx/6g
>>868
どうも 868 です。
PIC18F47K42で同様な現象の記事を見つけましたが私には理解できません。
http://www.ccsinfo.com/forum/viewtopic.php?p=217541

下のコードを追加するようなんですが、どのファイルなのかわかりません。
//Select I2C with PPS
#PIN_SELECT SCL1IN = PIN_C3
#PIN_SELECT SCL1OUT = PIN_C3
#PIN_SELECT SDA1IN = PIN_C4
#PIN_SELECT SDA1OUT = PIN_C4
#use i2c(Master,Slow,I2C1,FORCE_HW)
最後のスレの
//Select I2C with PPS
#PIN_SELECT SCL1 = PIN_C3
#PIN_SELECT SDA1IN = PIN_C4
#PIN_SELECT SDA1IOUT = PIN_C4
//Using the peripheral name always forces hardware
#use i2c(Master,Slow=100000,I2C1)
が正解なのかも知れないが、どこに挿入するのだろう?
0900774ワット発電中さん
垢版 |
2018/04/25(水) 13:19:43.53ID:4yUtx/6g
>>897
こんな感じです。
EMULATED_EEPROM_Read関数はMCCが生成したi2c1.hの例文をコピペして、main関数の前に定義しました。
EMULATED_EEPROM_Read関数のwhile(status == I2C1_MESSAGE_PENDING) ;から抜けられないようです。
オシロでSCL1(RC3)とSDA1(RC4)を観察してもHighの状態です。
双方とも4.7KでVDDにプルアップしています。
I2CデバイスはDS1307(カレンダー)です。
TMR0とEUART1とADCは動作しています。

void ReadDateTime(uint8_t *pDateTime)
{
uint8_t dt[8];
// Read DS1307 Reg.
EMULATED_EEPROM_Read(0x68, 0, dt, 8);
*pDateTime++ = ((dt[6] >> 4) * 10) + (dt[6] & 0x0f);
*pDateTime++ = ((dt[5] >> 4) * 10) + (dt[5] & 0x0f);
*pDateTime++ = ((dt[4] >> 4) * 10) + (dt[4] & 0x0f);
*pDateTime++ = ((dt[2] >> 4) * 10) + (dt[2] & 0x0f);
*pDateTime++ = ((dt[1] >> 4) * 10) + (dt[1] & 0x0f);
*pDateTime = ((dt[0] >> 4) * 10) + (dt[0] & 0x0f);
}

void main(void)
{
uint8_t DateTime[6];
SYSTEM_Initialize();
INTERRUPT_GlobalInterruptHighEnable();
INTERRUPT_GlobalInterruptLowEnable();
INTERRUPT_PeripheralInterruptEnable();
TMR0_SetInterruptHandler(timer);
printf("Start!&#165;r&#165;n");
ReadDateTime(DateTime);
ここに来ない
0901774ワット発電中さん
垢版 |
2018/04/25(水) 13:33:20.45ID:aEth5XWW
>>895
TXIEを見た後TXREGにセットするまでの間に
割り込みがバタバタっと来たらアウトじゃないか?
0903774ワット発電中さん
垢版 |
2018/04/25(水) 13:42:18.51ID:4yUtx/6g
>>897
コピペの関数もそのまま添付します。
void EMULATED_EEPROM_Read(
uint16_t slaveDeviceAddress,
uint16_t dataAddress,
uint8_t *pData,
uint16_t nCount)
{
static volatile I2C1_MESSAGE_STATUS status;
I2C1_TRANSACTION_REQUEST_BLOCK readTRB[2];
uint8_t writeBuffer[3];
uint16_t timeOut;

// this initial value is important
status = I2C1_MESSAGE_PENDING;

// build the write buffer first
// starting address of the EEPROM memory
writeBuffer[0] = (dataAddress >> 8); // high address
writeBuffer[1] = (uint8_t)(dataAddress); // low low address

// we need to create the TRBs for a random read sequence to the EEPROM
// Build TRB for sending address
I2C1_MasterWriteTRBBuild( &readTRB[0],
writeBuffer,
2,
slaveDeviceAddress);
// Build TRB for receiving data
I2C1_MasterReadTRBBuild( &readTRB[1],
pData,
nCount,
slaveDeviceAddress);

timeOut = 0;

while(status != I2C1_MESSAGE_FAIL)
{
// now send the transactions
I2C1_MasterTRBInsert(2, readTRB, &status);

// wait for the message to be sent or status has changed.
while(status == I2C1_MESSAGE_PENDING) ;

if (status == I2C1_MESSAGE_COMPLETE)
break;

// if status is I2C1_MESSAGE_ADDRESS_NO_ACK,
// or I2C1_DATA_NO_ACK,
// The device may be busy and needs more time for the last
// write so we can retry writing the data, this is why we
// use a while loop here

// check for max retry and skip this byte
if (timeOut == SLAVE_I2C_GENERIC_RETRY_MAX)
break;
else
timeOut++;

}
}
0904774ワット発電中さん
垢版 |
2018/04/25(水) 14:57:04.90ID:4yUtx/6g
mainのprintf("Start!&#165;r&#165;n");を以下の行に変えたてみたが、SCL1もSDA1もHのままだわ。
printf("TEST1&#165;r&#165;n");
SSP1STAT = 0xC0;
SSP1CON1 = 0x28;
SSP1CON2 = 0x00;
SSP1CON3 = 0x08;
SSP1ADD = 0x9F;
SSP1BUF = 0x00;
printf("TEST2&#165;r&#165;n");
printfは正常に表示された。
別のソフトでRC3,RC4をGPIOでOUTにしてH/Lの出力を確認できたから生きているはず。
0905774ワット発電中さん
垢版 |
2018/04/25(水) 15:24:18.89ID:5d9B/hP4
>>904
オシロがあるならI2C.hで宣言されてるシンプルなリード、ライトをためしてみたら?オシロでなにも無いようなら、初期化周りが怪しい気がする。関数内だからこっちはどうなってるかわからんが。
0906774ワット発電中さん
垢版 |
2018/04/25(水) 15:38:52.91ID:eCcunkaK
PC USBロジアナ安いからおすすめ
〜\1000程度で買える
RS232やI2Cの解析なんかには十分な
24MHzサンプリング8ch
amazonとかebayで買える
0907774ワット発電中さん
垢版 |
2018/04/25(水) 15:40:07.33ID:TIJK9eAp
>>902
>>863のリングバッファが空だったらってとこを、TXIE(TX割り込みイネーブル)が0だったらと変えるだけ。
0908774ワット発電中さん
垢版 |
2018/04/25(水) 15:56:00.57ID:4yUtx/6g
>>905
main.c内に下記のtest関数を定義して、MCCの初期化と割込み許可直後でtest関数を呼び出した。

void test(void)
{
static volatile uint8_t buh[16];
I2C1_MESSAGE_STATUS status = I2C1_MESSAGE_PENDING;

I2C1_MasterRead (buf, 4, 0x68, &status);
printf("%02x, %02x, %02x, %02x&#165;r&#165;n", buf[0], buf[1], buf[2], buf[3]);
}

オシロにはHレベルのままでI2C1_MasterRead関数から返ってきた。
4バイトとも0x00でした。
何故かその後に呼び出されるReadDateTime関数内の
EMULATED_EEPROM_Read(0x68, 0x0000, dt, 8)から抜けられるようになった。
でもデータは全て0x00でオシロにも出てこない。

別ソフトで1mS周期割り込みでRC3,RC4を毎回反転するのを書き込むとオシロにちゃんと矩形波が現れる。
0909774ワット発電中さん
垢版 |
2018/04/25(水) 16:03:38.28ID:4yUtx/6g
>>905
MCCの初期化部分が先のコードです。

SSP1STAT = 0xC0;
SSP1CON1 = 0x28;
SSP1CON2 = 0x00;
SSP1CON3 = 0x08;
SSP1ADD = 0x9F;

何故かSSP1CON2が無かったので追加したが変化なし。

この状態で
SSP1BUF = 0x00;
すれば送信が発生すると思うのだが?
初期化間違っているのかな?
SPIは何度も使ったけどi2cはPICでは初めてです。
0910774ワット発電中さん
垢版 |
2018/04/25(水) 17:14:24.29ID:5d9B/hP4
>>909
設定はそれで問題ないはず。速度は計算してないから、合ってるかわからんけど。
BUFFにデータ入れるまえにCON2.SEN=1でスタートコンディション発行しないと駄目。これだけでSDAは一旦Loになるはず。
0911774ワット発電中さん
垢版 |
2018/04/25(水) 18:07:06.07ID:ozfwihV9
>>910
ありがとうございます。
明日、試します。
MCCのコードをPIC16系と見比べたけど同じだった気がする。
明日こそ!
0912774ワット発電中さん
垢版 |
2018/04/25(水) 19:10:38.65ID:Iegs2HCt
>>907
それはわかってる

TXIEを見てから送信バッファに書くまでのタイミングに
UART以外の割り込みが来て、
そこからUART割り込みでTXREGに書くまでに
ダブるタイミングになったらマズイだろ
って思ったけど
割り込みが1文字送信時間分占有しないと問題が起きないし
1文字占有したら受信もマズいので
まああまり気にしなくていいかな

ボーレートが速くてUSBも使ってたりする場合は注意が必要っていうくらい
ソフトのバッファでも猶予が倍になるだけて同じだな

一応条件に加えておいた方が良いかと
0913774ワット発電中さん
垢版 |
2018/04/26(木) 07:48:00.18ID:pjy6qYAx
>>910
おはようございます。

SCL1、SDA1が共にLowになりました。

SSP1CON2bits.SEN1 = 1;
SSP1BUF = 0x00;

MSSP1は生きているようなのでもう一度PIC16FとPIC18FでのMCCコードの違いを探します。
0915774ワット発電中さん
垢版 |
2018/04/26(木) 11:35:24.22ID:0ynxSK/6
PICのI2Cはエラッタだらけ
MKやMMにI2Cが無いのはエラッタで全く使い物にならないからスペックから消した
不自然にI2Cが無いのはそういう理由
MZは使い物にならないけどスペックに載ってる
0916774ワット発電中さん
垢版 |
2018/04/26(木) 12:53:24.82ID:Xj/+jZB9
エラッタエラッタうるせーバカだな
おばQのOちゃんかよ
0918774ワット発電中さん
垢版 |
2018/04/26(木) 14:02:37.95ID:pjy6qYAx
>>910
解決しました!
PIC16FのMCCコードと比較した結果

I2C1_Initialize関数の最後に// add行を追加
// clear the master interrupt flag
PIR1bits.SSP1IF = 0;
PIR2bits.BCL1IF = 0; // add
// enable the master interrupt
PIE1bits.SSP1IE = 1;
PIE2bits.BCL1IE = 1; //add

I2C1_BusCollisionISR関数に下記add行挿入
PIR2bits.BCL1IF = 0; // add

I2C1_MasterTRBInsert関数の前に以下のインライン関数を定義
inline void I2C1_WaitForLastPacketToComplete()
{
while(i2c1_state != S_MASTER_IDLE)
{
// If your code gets stuck here it is because the last packet is never completing
// Most likely cause is that your interrupt is not firing as it should. Check if you have
// correctly enabled all MSSP, Peripheral and GIE interrupt settings.
}
}
I2C1_MasterTRBInsert関数の最後の
// for interrupt based
if (*pflag == I2C1_MESSAGE_PENDING)
{
while(i2c1_state != S_MASTER_IDLE)
{
// force the task to run since we know that the queue has
// something that needs to be sent
PIR1bits.SSP1IF = true;
}
} // block until request is complete
を以下に差し替え
// for interrupt based
if (*pflag == I2C1_MESSAGE_PENDING)
{
I2C1_WaitForLastPacketToComplete();

// The state machine has to be started manually because it runs only in the ISR.
// If we called the ISR function here function duplication would double the code size
// because this function would be called both from interrupt and from mainline code.
PIR1bits.SSP1IF = true;

} // block until request is complete
これでI2C通信が正常に動作しました。
DS1307のアドレスポインタは8bitなのでEMULATED_EEPROM_Read関数の16bitを書き換えました。
0920774ワット発電中さん
垢版 |
2018/04/26(木) 16:39:20.13ID:wsiyshJn
うっかりするとエラッタの存在見落としがちだから、
騒いで騒ぎ過ぎは無いと思う
エラッタ情報をデータシートと分けてあるのは
嫌がらせ超えて隠蔽体質だと思うよ
PDFファイル合冊して発行すればいいのに
それともデータシートのどこかに書いてある?
0922774ワット発電中さん
垢版 |
2018/04/26(木) 17:25:12.14ID:tI778vpf
製品としての仕様であるデータシートと
実装の問題であるエラッタは分けといてくれる方がいい
シリコンリビジョンが上がる度にデータシートが更新されるなんてあり得ません
0923774ワット発電中さん
垢版 |
2018/04/26(木) 17:58:30.70ID:uI7+7JKe
エラッタなんてここじゃなくて、あっちでやってほしい
全然意味がわかんなあいーー
0924774ワット発電中さん
垢版 |
2018/04/26(木) 18:25:12.30ID:wsiyshJn
>>922
いや、シリコンリビジョンが上がってもデータシートが更新されないなんてあり得ません
エラッタも治らないならいい加減仕様として明記しろって話だよ
0926774ワット発電中さん
垢版 |
2018/04/26(木) 19:18:07.16ID:zrSq8Rut
リビジョンなんかほとんど変わらないし
変わってもエラッタ直らないし

使えないものはデータシートから消してほしい
0931774ワット発電中さん
垢版 |
2018/04/26(木) 23:38:41.81ID:x/bI+Fe1
質問してくれていいよ
他の話題で活気付けば誰もエラ男の相手なんかしないから
0932774ワット発電中さん
垢版 |
2018/04/27(金) 15:49:09.70ID:y/XUCCUG
NYTから

”A.I. Researchers は100万ドル以上の高給を得ている”
A.I. Researchers Are Making More Than $1 Million, Even at a Nonprofit
https://www.nytimes.com/2018/04/19/technology/artificial-intelligence-salaries-openai.html

シリコンバレーで公然の秘密の一つは、人工知能の専門家が巨額の給与とボーナスを得ているという
ことです。 今、OpenAIと呼ばれる研究室によるちょっとした税金申告によって、そのような驚くべき
金額が公になっています。

OpenAIは、2016年にトップ研究員であるIlya Sutskeverに190万ドル以上を支払った。その年の
3月から採用されたにもかかわらず、もう一人の有力な研究員、Ian Goodfellowに80万ドル以上を
払った。 両方ともGoogleからリクルートされました。2016年6月に採用された、元カリフォルニア州立大学
バークレー校の教授で、ロボット研究者のPieter Abbeelは$ 425,000を得た。 これらの数字には
すべて契約ボーナスが含まれています。

OpenAIが非営利団体であるために、公開された税務書類に記載されている数字は、世界中の組織が
A.I.技能者に支払っている金額を垣間見せてくれた。 しかし、注意すべきなのは、OpenAIでの報酬は、
非営利団体としてストックオプションを提供することができないため、これらの研究者はこれでもまだ安売り
してるかもしれないということです。

これらの技術を理解している人は少なく、何千もの企業がその技術を使いたいと思って居るので、
トップA.I.研究者の給料は天文学的な数字になってます。
カナダの独立研究機関によれば、真に重要なA.I. researchをを行うために必要なスキルを持っている人は
世界中の22,000人しかいないと推定しています。

「需要が山のようにあるにに、一方供給は水のしずくのようにしかありません。」
AIの事業を立ち上げたSkymindの創業者であるクリス・ニコルソンは語った。
それは大学や政府にとって重大な問題を引き起こす。 彼らにもまた、A.I.技術者が必要です。
次世代の研究者に教え、これらの技術を軍隊から薬の開発に至るまで実践に移すために。
しかし、彼らは決して民間セクターで支払われている同額の給料を払えません。

以下略
0934774ワット発電中さん
垢版 |
2018/04/27(金) 22:12:17.83ID:J0rOJR9S
>746 に送ったが何も反応ない。「使えねーよボケが!」でも良いんだけど。
0936774ワット発電中さん
垢版 |
2018/04/28(土) 07:12:06.55ID:u90n8Wf/
アドレスが受信専用って書いてあるからねえ
「受け取りました」くらいはここに書いても良いとは思うけど
0937774ワット発電中さん
垢版 |
2018/04/28(土) 07:59:23.33ID:htNAzHQf
メールアドレスってもともと受信に使うものなんじゃないのかな?
送信に必要なのはSMTPなどの送信サーバーにアクセスする権利なだけで。
0939774ワット発電中さん
垢版 |
2018/04/28(土) 09:12:56.58ID:u90n8Wf/
>>760を見て

送ってくれたメールの送り主に対してメールを送るつもりはありません

という意志だとわからないと
ただの面倒くさいヤツ

送信専用のアドレスって何だよwww
と思ってもそれを言わないのが大人
0943774ワット発電中さん
垢版 |
2018/04/28(土) 14:41:39.09ID:htNAzHQf
秋月にPIC16F18323をリクエストした人がいるっていうが、18325と10円しか違わない。
18323は18325のサブセットだと思ってた。10円でも節約して秋月で買うべきものなんだろか。
0945774ワット発電中さん
垢版 |
2018/04/28(土) 14:49:09.32ID:XLfGLUVl
リクエストした時点では金額はわからんしな
10円でも1000個買えば1万円の差
0946774ワット発電中さん
垢版 |
2018/04/28(土) 15:00:55.50ID:htNAzHQf
PICKIT4はMicrochip Directには在庫があるけど、DigikeyもMouserもなし。
なんでだろなー。
レス数が950を超えています。1000を超えると書き込みができなくなります。

ニューススポーツなんでも実況