This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
blogspace:xmegaの入出力レジスタ周り [2014/03/03 16:53] hirosi [XMEGAの入出力レジスタ周り] |
blogspace:xmegaの入出力レジスタ周り [2014/03/03 21:59] hirosi |
||
---|---|---|---|
Line 16: | Line 16: | ||
実際は微妙に違うらしく、\\ | 実際は微妙に違うらしく、\\ | ||
PORTx.OUTSETの方は「レジスタの1が立ってる場所を1に設定」って意味で\\ | PORTx.OUTSETの方は「レジスタの1が立ってる場所を1に設定」って意味で\\ | ||
- | PORTx.OUTの方は単純に「出力ポートレジスタに値を代入」って意味っぽい。\\ | + | 1を立てる事はできるけど、0を立てる事は出来ない。\\ |
+ | PORTx.OUTの方は単純に「出力ポートレジスタに値を代入」って意味で\\ | ||
+ | こっちは普通に0を立てることもできる。\\ | ||
+ | \\ | ||
だから\\ | だから\\ | ||
+ | PORTA.OUT = 1; | ||
while(1) | while(1) | ||
{ | { | ||
Line 23: | Line 27: | ||
} | } | ||
このwhileループと\\ | このwhileループと\\ | ||
+ | PORTA.OUT = 1; | ||
while(1) | while(1) | ||
{ | { | ||
Line 28: | Line 33: | ||
} | } | ||
このwhileループでは動作が全く違う。(分かりにくい例でごめんね J('ー` )し)\\ | このwhileループでは動作が全く違う。(分かりにくい例でごめんね J('ー` )し)\\ | ||
- | もうちょっと例を出すと、 | + | もうちょっと例を出すと、\\ |
- | sbi(PORTA,1); と PORTA.OUTSET = 1; が同じで | + | sbi(PORTA,1); と PORTA.OUTSET = 1; が同じで\\ |
- | PORTA = 1; とは違うよねってそんな感じ。 | + | PORTA = 1; とは違うよねってそんな感じ。\\ |
+ | \\ | ||
ぶっちゃけTinyやMegaで値の代入に慣れきってるとOUTSETのありがたみが分からない・・・\\ | ぶっちゃけTinyやMegaで値の代入に慣れきってるとOUTSETのありがたみが分からない・・・\\ |