X



トップページ電気・電子
1002コメント314KB
AVRマイコン総合スレ Part38©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
0001774ワット発電中さん 転載ダメ©2ch.net
垢版 |
2016/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エラー表示のページがあるね。
0953937
垢版 |
2017/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にも応用できます。

うーむ、書き込み長さの新記録を作ってしまった、申し訳無い。
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にも使えるし、覚えておいて損は無い(と信じている)(笑)
0966774ワット発電中さん
垢版 |
2017/06/15(木) 23:18:43.48ID:ob5O5zLQ
ソースの寄与に対しそこまでいうのは可哀想だろ。
何か思想的な問題が?
素晴らしい感じはしないけど、無駄ってほどではないだろう。
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%にしたら元に戻りました。

お騒がせいたしました。
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であってるから
クロックが変えてあるんじゃないの
0982774ワット発電中さん
垢版 |
2017/07/03(月) 17:39:18.77ID:RW5QoveP
すまん、動いた
0984774ワット発電中さん
垢版 |
2017/07/05(水) 19:16:49.88ID:GY24Wwvv
PICってメモリ空間が非線形じゃないですか?バンクメモリだったか。
AVRって線形じゃないですか。
なんでPICが人気あるの?AVRの方がC言語でつかいやすいやん。。
明解な答えを求む。
0987774ワット発電中さん
垢版 |
2017/07/05(水) 19:53:29.48ID:Fir7/Gi7
みんな使ってるからやろなぁ日本では
今ではArduinoがそのポジションに行きつつあるが
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
自分もマナー違反の一人になってるのに、そんなことも忘れるほど恥ずかしいことでもあったのかい?
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
関連情報が人気があるチップには沢山あるということで人気がある方がいいなぁと思う。

てか、次スレだれか立ててる?
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 287日 6時間 26分 22秒
10021002
垢版 |
Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

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

▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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