AVRマイコン総合スレ Part38©2ch.net

レス数が1000を超えています。これ以上書き込みはできません。
0001774ワット発電中さん 転載ダメ©2ch.net2016/09/22(木) 01:56:53.65ID:aTEcNaQB
個人でも手軽に使えるAtmelのAVRマイクロプロセッサを中心に語るスレッドです

<公式サイト>
Atmel AVR 8-bit and 32-bit Microcontrollers
http://www.atmel.com/products/microcontrollers/avr/  英語表記
http://www.atmel.com/ja/jp/products/microcontrollers/avr/ 日本語
・AVR Libc Reference Manual: http://www.atmel.com/webdoc/AVRLibcReferenceManual/

<参考になるページ>
・AVRWiki: http://avrwiki.sourceforge.jp/cgi-bin/wiki.cgi?page=AVRWiki
・AVR情報多い-chanさんのpage: http://elm-chan.org/
・avrfreaks.net avrgccその他AVR関連の総本山(英語): http://www.avrfreaks.net/
・TAP-Config: http://ww2.tiki.ne.jp/~maro/
・AVR.jp 日本語のAVR資料他: http://www.avr.jp/
・ATMega168日本語データシート(翻訳中): http://awawa.hariko.com/chira-ura/
・AVR アセンブラのマニュアル(ユーザーズガイド): http://www.atmel.com/Images/doc1022.pdf
・インストラクション(命令セット)の解説: http://www.atmel.com/Images/doc0856.pdf
・条件付きアセンブルの解説(アセンブラ ver. 1.74対応):http://www.atmel.com/Images/doc2550.pdf
・アセンブラとCの連携方法: http://www.atmel.com/Images/doc1234.pdf

※前スレ
AVRマイコン総合スレ Part37
http://rio2016.2ch.net/test/read.cgi/denki/1455035922/

テンプレみたいなものは以上です

0952774ワット発電中さん2017/06/03(土) 14:29:26.92ID:bLvHiPcZ
microchipのサイト、日本語にすると404エラー表示のページがあるね。

09539372017/06/06(火) 22:47:14.70ID:/OGLyShW
何か情報提供して損した気がする


もー教えてやんないからな!ヽ(`Д´)ノ

0954774ワット発電中さん2017/06/13(火) 15:40:37.02ID:1CTmRlyL
tiny2313用の並列処理プログラムです。
>>> 興味の無い方はスキップしてください。

リストが長くなるので準備部だけを載せます。
実行部、切り替え部は「マイコンソフト 悩み事相談室」を見てください。

ポートB(前のサンプルのポートAから変更)、タイマ0の設定は通常と変わりません。
ポートBには2個のSWとLEDとを接続し、タイマ0は5mSのノーマルCTCで動かします。
タスク2のスタック領域には
 「タスク2の実行を終って、現在はタスク1を実行中」
の状態を擬似的に作ります。
これでタスク1の実行を開始すれば、5mS後にはタイマ割込みでタスク2に切り替わり、
以後タスク1,2を交互に実行します。

RESET:
;----- Port_B for LED1:bit0, LED2:bit1, SW1:bit2, SW2:bit3
 ldi ZL,0b11111111  ;input with pull up
 out PortB,ZL     ;output High (LED OFF)
 ldi ZL,0b00000011  ;bit0,1 output
 out DDRB,ZL     ;bit 2~7 input
;
;----- timer0 for 5mS interval
 ldi ZL,0b00000010  ;simple-CTC mode
 out TCCR0A,ZL
 ldi ZL,0b00000101  ;prescale OSC_20MHz /1024 to 19.53KHz
 out TCCR0B,ZL
 ldi ZL,98      ;set compare_A:98 for 199.3Hz
 out OCR0A,ZL
 ldi ZL,0b00000001  ;enable CTCA interrupt
 out TIMSK,ZL
:
;----- setup for task dispatch
 ldi ZL,stack2    ;set SP to stack2
 out SPL,ZL
 ldi ZL,LOW(T2L1)  ;push strat adrs for PC_Lo
 push ZL
 ldi  ZL,HIGH(T2L1) ;        for PC_Hi
 push ZL
 push ZL       ;   dumy ZL
 push ZL       ;      ZH
 push ZL       ;      SREG
 in  sv_SPL,SPL   ;save SPL
;
 ldi ZL,stack1    ;set SP to stack1 SP
 out SPL,ZL
;
 sei         ;enable global int.
 (ここからタスク1のT1L1を実行開始)

0955774ワット発電中さん2017/06/13(火) 15:42:58.23ID:1CTmRlyL
(続き)
出力をオシロで見ながらスィッチをSWを押すと、単独で動作していることが分ります。
このプログラムはあくまでもサンプルです、たとえば点灯時間を正確にしたいなら一工夫が要ります。
ここでは使用していませんが、ポーリング間隔が長いときは、
CPUの実行効率を上げるためにソフトウェア割込みで強制的に切り替えます。
動作を理解すればタスク数を増やしたり、他のメーカーのCPUにも応用できます。

うーむ、書き込み長さの新記録を作ってしまった、申し訳無い。

0956774ワット発電中さん2017/06/13(火) 18:10:15.11ID:lG5phVee
つまり質問じゃなくて○○作ってみたってことだよな。

0957774ワット発電中さん2017/06/13(火) 19:16:42.62ID:V06IuDRc
相当悔しかったんだろうが反省の色も見えない

0958774ワット発電中さん2017/06/13(火) 19:21:27.93ID:emimBve7
>>954
ブログでやれ

0959774ワット発電中さん2017/06/13(火) 20:53:59.69ID:rIZ08I+2
全員スキップ

0960774ワット発電中さん2017/06/14(水) 01:37:54.99ID:+D+SZcUM
悩み事相談室ってどこのサイトだと思ったら2chにそういうスレがあるのか。

0961774ワット発電中さん2017/06/14(水) 08:06:44.45ID:7vt6Mqr5
>>955
良い例えが浮かばないけど
SDセクタ読みながらのオーディオ再生と同じ話だよね
(一発目は空のバッファに割り込んでる)

0962774ワット発電中さん2017/06/14(水) 12:48:15.32ID:7ntIq8PB
>>961
その喩えはよく分らないけど、「ダミィ」を「空」と入替えても構わないと思う。
タスク1実行中の1発目のタイマ割込みが掛かった時点のスタック2領域は
「タスク2を実行中にタイマ0割込みが掛かって割込み処理を実行した後」
と同じ状態になっている。

つまり、タスク1実行開始前に、タスク2のスタック2領域に実行再開アドレスと共に
保存するフラグレジスタやZレジスタを、あらかじめ
<タイマ割り込みを実行した後かのように>書き込んでおく。

紙にスタック1、2のアドレスと実行再開アドレスPCL、PCHやフラグ、ZH、ZLを積み上げて書いて
タイマ割込みの前後でスタックポインタと内容がどう変わるか見れば分りやすいかな。
tiny2313はあまりこのような処理には向いていないけど、
他のCPUにも使えるし、覚えておいて損は無い(と信じている)(笑)

0963774ワット発電中さん2017/06/14(水) 12:52:42.30ID:3NwwTXcg
>>961
(触んなよ)

0964774ワット発電中さん2017/06/14(水) 14:45:42.81ID:WDCgH+R4
(自演でしょ)

0965774ワット発電中さん2017/06/15(木) 03:14:55.37ID:bquHVq2f
>>964
(病院行け)

0966774ワット発電中さん2017/06/15(木) 23:18:43.48ID:ob5O5zLQ
ソースの寄与に対しそこまでいうのは可哀想だろ。
何か思想的な問題が?
素晴らしい感じはしないけど、無駄ってほどではないだろう。

0967774ワット発電中さん2017/06/15(木) 23:41:03.35ID:cMeOcN0c
問題があるから叩かれてるんだよ

0968774ワット発電中さん2017/06/15(木) 23:41:33.05ID:cMeOcN0c
過去の書き込みを見ればわかる

0969774ワット発電中さん2017/06/16(金) 00:02:16.78ID:w0h7hSW6
>>967
巣に返れ、ボケ。

0970774ワット発電中さん2017/06/16(金) 12:38:17.85ID:B0Vav9ft
>>966
こいつはIDをコロコロしながら「珍妙」書き込みをして
AVRスレを妨害しているリアル偏執狂(パラノイア)のPIC厨だよ
とにかく1日も早く精神科を受診して欲しいのだが

0971774ワット発電中さん2017/06/17(土) 06:50:44.37ID:818ykKq8
助けてください

AtmelStidio7で、また何かキー同時に押して
エディタの文字ちっちゃくしちゃいました。
どれ押すと大きくなりますか

エッチネタは雑でいいのでお願いいたします

0972774ワット発電中さん2017/06/17(土) 07:16:34.15ID:818ykKq8
エクセルみたいに下に何%とかタブを発見し
100%にしたら元に戻りました。

お騒がせいたしました。

0973774ワット発電中さん2017/06/17(土) 07:28:28.35ID:bDE3MezB
>>972
altキーかなんか押しながらマウスのホイール転がすと変わる

0974774ワット発電中さん2017/06/17(土) 08:05:14.88ID:818ykKq8
>>973
おおっ
これのせいだったのかな

ありがとう、大好き!!

0975774ワット発電中さん2017/06/17(土) 17:16:58.27ID:7bfL0V/U
ATmega88でタイマー2の高速PWMでLチカをしたいのですが
1秒に4回くらいの速さで光らせたいです
色々調べて以下の設定でトライしました

DDRB = 0b00001000; //PB3を出力に
TCCR2A = 0b10000011;
TCCR2B = 0b00001101;
OCR2A = 127;

クロック周期を1/24にしてカウンタの最大を256msにしつつ
OCR2Aを127に設定して128msで点滅するようにしています

しかし実際の挙動はずっとPB3ピンがずっとHIGHになっていて
矩形波が出てきません

他に何か設定しないといけないのでしょうか?

0976774ワット発電中さん2017/06/17(土) 18:12:08.78ID:7bfL0V/U
TCCR2B = 0b00000101;
で無事いけました

ただ計算間違いで全然128ms店頭にはならなかったです
8ビットタイマーだとキツいんですかね

0977774ワット発電中さん2017/06/17(土) 19:21:47.62ID:qw5pDVqg
クロック元はデフォの1MHzですか?
それならPWM周期は1MHz/プリスケーラ128/カウンタ周期256=約30.5Hz
これをプログラムで1/24したと言うなら約1.27Hz
4Hzなんて数字にはかすらないから計算違いですねぇ

0978774ワット発電中さん2017/06/17(土) 19:39:19.98ID:qw5pDVqg
プリスケーラを1/1024にしたつもりでデータシート読み違えたのかな?

0979774ワット発電中さん2017/06/28(水) 14:51:21.71ID:ODn8DT+J
クロック1MHzだとしてタイマー1周でだいたい1/4秒にしたいなら
プリスケーラを1/1024にするだけだし
それならTCCR2Bは>>976であってるから
クロックが変えてあるんじゃないの

0980774ワット発電中さん2017/06/28(水) 14:54:38.40ID:ODn8DT+J
ごめんあってないわ
1/1024は
TCCR2B=0b00000111;
だわ
すまんこ

0981774ワット発電中さん2017/07/01(土) 22:13:07.74ID:nOQ2kHjb
atmel start projectから作成するとADCが動かないのだけど

0982774ワット発電中さん2017/07/03(月) 17:39:18.77ID:RW5QoveP
すまん、動いた

0983774ワット発電中さん2017/07/03(月) 17:44:21.51ID:KkQ+je2t
分ってたよ。キミは一人で解決できる子だって。

0984774ワット発電中さん2017/07/05(水) 19:16:49.88ID:GY24Wwvv
PICってメモリ空間が非線形じゃないですか?バンクメモリだったか。
AVRって線形じゃないですか。
なんでPICが人気あるの?AVRの方がC言語でつかいやすいやん。。
明解な答えを求む。

0985774ワット発電中さん2017/07/05(水) 19:35:21.12ID:+inT5sHx
トラ技の記事でPICが圧倒的に多かったから。

0986774ワット発電中さん2017/07/05(水) 19:36:55.27ID:Fcu9Wel9
Atmelのやる気が全然なかったから…
日本では……

0987774ワット発電中さん2017/07/05(水) 19:53:29.48ID:Fir7/Gi7
みんな使ってるからやろなぁ日本では
今ではArduinoがそのポジションに行きつつあるが

0988774ワット発電中さん2017/07/05(水) 20:00:32.69ID:McVKXddd
高電圧プログラムのできるまともなライターがねぇし

0989774ワット発電中さん2017/07/05(水) 21:19:50.70ID:9vkELkhZ
32bit使えば解決
色々と楽

PIC32MMとか安いし

0990774ワット発電中さん2017/07/05(水) 21:22:00.32ID:9vkELkhZ
アドレスを1レジスタで保持出来るのがいい

ARM Cortex M
MIPS microAptiv

0991774ワット発電中さん2017/07/06(木) 00:46:51.24ID:6Tj8pDRP
でも、その32bitマイコンは4GBのメモリを内蔵してないんでしょう?
ぜいぜい32KBぐらいじゃないんですか?
いろいろ楽といいますがハンダ付け大変じゃないですか?

0992774ワット発電中さん2017/07/06(木) 02:07:25.21ID:Fu7RsZNi
8bitマイコンでもなんとかなることに32bitマイコン使っちゃいけないの?
DIPの選択肢もあるし、QFPを変換基板にはんだ付けするくらい趣味の範疇でも十分できるんじゃないかな。
EAGLEやKiCADで基板作ってる人もいっぱいいるだろうね。
自分基準でモノ言っちゃいけないな。

0993774ワット発電中さん2017/07/06(木) 02:36:43.52ID:6Tj8pDRP
構やしねーがあんちゃん、そういうのは32bitスレでやりな。ここはAVRスレ。
AVR32でもない、ARMだのMIPSだのPIC32はスレチ、マナー批判だぜぇ。

荒らし扱いされても文句は言えねぇな!!!

0994774ワット発電中さん2017/07/06(木) 03:26:10.36ID:Fu7RsZNi
>>993
それを>>991で書けよw
自分もマナー違反の一人になってるのに、そんなことも忘れるほど恥ずかしいことでもあったのかい?

0995774ワット発電中さん2017/07/06(木) 06:25:31.87ID:oodI02Go
991って、ただのアラシでしょ?

0996774ワット発電中さん2017/07/06(木) 06:48:25.19ID:5sI0S4Z8
私がAVRを使う理由は一言で言えば「楽しいから」かな。
命令の種類が多い+命令に制約がある、汎用レジスタ方式などの理由で
「トリッキーで小さくて早いアセンブラ・プログラムを書きたい」
という私の電子工作の目的にはピッタリのCPUだ。
PICをアセンブラで書くのはつらい。

0997774ワット発電中さん2017/07/06(木) 07:20:57.62ID:ooPyzRCH
いかにも後付けな理由だな
1個のレスの中ですら一貫性がまるでない

0998774ワット発電中さん2017/07/06(木) 07:22:31.13ID:hrsblaVR
自分の使っているプロセッサの品種が「人気がない」とそんなに困る物なの?他品種を僻む程に?
AVRもMicrochipに移管されてdisconの心配はない筈なのになんか不都合あるの?
明快な答えを求む。

0999774ワット発電中さん2017/07/06(木) 08:20:11.58ID:Um7dmNHJ
>>998
関連情報が人気があるチップには沢山あるということで人気がある方がいいなぁと思う。

てか、次スレだれか立ててる?

1000774ワット発電中さん2017/07/06(木) 08:23:15.83ID:ooPyzRCH
>>999よろしく!
次スレ

10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 287日 6時間 26分 22秒

10021002Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.2ch.net/

▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php

レス数が1000を超えています。これ以上書き込みはできません。