ASM 板


LINE

看板 ASM  RSS
各位大大午安, 自从前天开始接触Arduino这个东西後, 便开始被他多样的功能给吸引住, 而网路上丰富且循序渐进的资料让从没学过C语言的我也能很顺利的上手。 顺便推荐一下这两天我所看觉得非常棒的网站: 1. https://www.youtube.com/watch?v=E3W8Fxc7tHo
这个网站是由Arduino的发展人之一所拍的教学影片,共有10个主题, 从最基本开始让你慢慢了解这玩意是什麽! 在看到第四个lesson後也有了灵感写了我的第一支程式, http://0rz.tw/fdhGW (让Ardino唱卡农,连结到我的FB影片) 2. http://0rz.tw/2akCj 这个网站里的Arduino Tutorials 目前共有57个chapters,而且持续更新中, 藉由做专题的形式来学习Arduino。 打了落落长的废话我想问的问题是: a. 我在看了Arduino官网里关於使用SPI写EEPROM的文章後一直卡在一个地方, 网路上找了很多资料後还是无法了解.... (http://arduino.cc/en/Tutorial/SPIEEPROM,文章连结) 文章里其中一段程式码 : // SPCR = 01010000 //interrupt disabled,spi enabled,msb 1st,master,clk low when idle, //sample on leading edge of clk,system clock/4 rate (fastest) SPCR = (1<<SPE)|(1<<MSTR); clr=SPSR; clr=SPDR; delay(10); 我的理解为我想要在SPI Control Register 里写入01010000这个指令, 我不懂的是这串指令要怎麽从(1<<SPE)|(1<<MSTR)产生? 我看程式的一开始没有宣告SPE与MSTR为何种变数, 为什麽它可以这样直接使用? 为什麽不能直接写 : SPCR=01010000就好? b. 在一个使用SPI控制DAC的范例里 : http://0rz.tw/Y9QGW 因为此DAC为12 bit input且需4 bit来做参数设定, 由於SPI只能做byte的传输,因此范例里使用的是 highbyte()与lowbyte()两指令, 将一个16 bit的变数分成两部分写入DAC, 其中包含参数设定的那部分使用了bitmask来使得该4 bit永远为固定值。 部分程式码为 : word outputValue = 0; // a word is a 16-bit number byte data = 0; // and a byte is an 8-bit number void loop() { for (int a=0; a<=4095; a++) { outputValue = a; digitalWrite(10, LOW); data = highByte(outputValue); data = 0b00001111 & data; data = 0b00110000 | data; SPI.transfer(data); data = lowByte(outputValue); SPI.transfer(data); digitalWrite(10, HIGH); delay(del); } 这里我不懂的地方是在bitmask里0b00001111 or 0b00110000 为什麽会多出0b? 不能直接写00001111 or 00110000吗? --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.109.112.200
1F:→ kdjf: + 是or, SPE/MSTR是你一开始include library时拿来用的 11/21 14:45
2F:→ kdjf:00001111就变成一千一百一十一了... 11/21 14:46
3F:→ kdjf:0b00001111是一个二进位数,十进里的15 11/21 14:47
这里我了解了,原来是在二进位时开头必须加入的字! 感谢指引方向~ 不过在SPE/MSTR这里我还是不懂.... 你的意思是一开始include的library里就有预先定义好的吗? 我刚看了一下程式码一开始只有include SPI.h, 点进去看也没看到 SPE, MSTR 或 SPSR, SPDR相关的定义.... ※ 编辑: escorpion 来自: 140.109.112.200 (11/21 15:30)
4F:→ alibuda174:SPSR在arduino/hardware/tools/avr/avr/include/avr里 11/21 17:39
5F:→ alibuda174:这些都是AVR微控制器的暂存器名称 11/21 17:39
谢谢你的回答! 在进去那个资料夹点了几个标头档还是没发现那几个字的定义後我放弃了.....冏 不过一结果来看我应该可以假设他们分别是6与4这两个值, 并且被已经被定义在某处了吧? 再来是如果我想要写01010000进SPSR, 可以直接写成 : SPSR=B01010000就好吗? ※ 编辑: escorpion 来自: 140.109.112.200 (11/21 22:37)
6F:→ kikiqqp:1. SPCR、SPSR、SPDR所指定的暂存器位址写在 iom8.h 11/22 10:18
7F:→ kikiqqp:2. 你可以直接给予数值 11/22 10:18
8F:→ kikiqqp:3. http://arduino.cc/en/Tutorial/SPIEEPROM 11/22 10:20
9F:→ kikiqqp:SPCR 11/22 10:20
10F:→ kikiqqp:| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 11/22 10:20
11F:→ kikiqqp:| SPIE | SPE | DORD | MSTR | CPOL | CPHA | SPR1 |SPR0 11/22 10:20
12F:→ kikiqqp:SPIE - Enables the SPI interrupt when 1 11/22 10:21
13F:→ kikiqqp:SPE - Enables the SPI when 1 11/22 10:21
14F:→ kikiqqp:DORD - Sends data least Significant Bit First when 1, 11/22 10:21
15F:→ kikiqqp:most Significant Bit first when 0 11/22 10:21
16F:→ kikiqqp:MSTR - Sets the Arduino in master mode when 1, slave 11/22 10:22
17F:→ kikiqqp:mode when 0 11/22 10:22
18F:→ kikiqqp:CPOL - Sets the data clock to be idle when high if set 11/22 10:22
19F:→ kikiqqp:to 1, idle when low if set to 0 11/22 10:22
20F:→ kikiqqp:CPHA - Samples data on the falling edge of the data 11/22 10:22
21F:→ kikiqqp:clock when 1, rising edge when 0 11/22 10:23
22F:→ kikiqqp:SPR1 and SPR0 - Sets the SPI speed, 00 is fastest 11/22 10:23
23F:→ kikiqqp:(4MHz) 11 is slowest (250KHz) 11/22 10:23
24F:→ kikiqqp:以上宣告在 io2333.h 11/22 10:25
太感谢了!我刚刚终於在里面找到了! ※ 编辑: escorpion 来自: 140.109.112.200 (11/22 12:49)







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP