- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我无法理解这段代码的某些行,请描述一下这些代码的作用: 该代码在atmelstudio中编写,是ATMEL AVR443应用笔记的示例代码
unsigned char *pTemp;
fastTemp.word = ((PIN_HALL & hallMask)>>1);
pTemp = pDrvPattern + fastTemp.word;
PORT_MC = *(pTemp);
as *pDrvPattern 定义如下:
__regvar __no_init unsigned char *pDrvPattern
pDrvPattern = drvPatternsCW;
unsigned char drvPatternsCW[] = {
0, //Stop
// MC_PORT drive config
PDP2_CW, //Phase2
PDP6_CW, //Phase6
PDP1_CW, //Phase1
PDP4_CW, //Phase4
PDP3_CW, //Phase3
PDP5_CW, //Phase5
// Configuration of Output Compare operation for timer 0
COM0P2_CW, //Phase2
COM0P6_CW, //Phase6
COM0P1_CW, //Phase1
COM0P4_CW, //Phase4
COM0P3_CW, //Phase3
COM0P5_CW, //Phase5
// Configuration of Output Compare operation for timer 2
COM2P2_CW, //Phase2
COM2P6_CW, //Phase6
COM2P1_CW, //Phase1
COM2P4_CW, //Phase4
COM2P3_CW, //Phase3
COM2P5_CW //Phase5
};
__regvar __no_init union _fastTemp{
unsigned int word;
struct{
unsigned char LByte;
unsigned char HByte; //Hbyte = Zero
};
} fastTemp @12;
#define PDP1_CW ((0<<UL)|(0<<VL)|(1<<WL)|(0<<UH)|(1<<VH)|(0<<WH))
#define PDP2_CW ((0<<UL)|(0<<VL)|(1<<WL)|(1<<UH)|(0<<VH)|(0<<WH))
#define PDP3_CW ((0<<UL)|(1<<VL)|(0<<WL)|(1<<UH)|(0<<VH)|(0<<WH))
#define PDP4_CW ((0<<UL)|(1<<VL)|(0<<WL)|(0<<UH)|(0<<VH)|(1<<WH))
#define PDP5_CW ((1<<UL)|(0<<VL)|(0<<WL)|(0<<UH)|(0<<VH)|(1<<WH))
#define PDP6_CW ((1<<UL)|(0<<VL)|(0<<WL)|(0<<UH)|(1<<VH)|(0<<WH))
#define HALL1 PB1
#define HALL2 PB2
#define HALL3 PB3
#define HALL_MASK ((1<<HALL1)|(1<<HALL2)|(1<<HALL3))
#define PORT_MC PORTD
最佳答案
您拥有的代码是从内存缓冲区中提取数据字段。该代码没有定义具有有意义字段的结构,而是创建了一个字符数组 drvPatternsCW[]
,然后使用 pDrvPattern
创建了指向该数组的指针。将 pTemp
设置为 pDrvPattern + fastTemp.word
相当于 pTemp = &pDrvPattern[fastTemp.word]
。 PORT_MC = *(pTemp);
最终与 PORT_MC = pDrvPattern[fastTemp.word]
相同。
关于C 编程 CodeVision AVR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41350321/
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 6 年前。 Improve this ques
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
CodevisionAVR 获取一个.c 文件并生成.hex 和.o 输出。 是否也可以从中生成 .asm 文件? 最佳答案 根据这个CodeVisionAVR tutorial , 当您按下工具栏上
我正在尝试使用 USART 通信接收和发送数据,我使用的是 atmega16。我在 PC 中创建了一个程序来将字符串发送到 micro,如果字符串匹配,micro 将激活 adc 并将 adc 数据发
我是 C 语言的初学者。我正在尝试写入和读取外部 eeprom (AT24c02B),然后将 eeprom 中存储的数据字节显示到 PORTB 中的 LED 和/或 LCD。所以我知道数据成功存储在e
在许多语言中,例如java,c#,...,我们使用 //region Variables . . . //endregion 用于类别代码。我们在 CodeVision 编辑器中使用“
在下面您可以看到我用 Codevision(C 语言)编写的整个程序。当我想编译它时,我收到一些关于 Switch block 的错误!我很确定我的 block 的形式是正确的!你能看一看吗? ***
我有一个设置为 CodeVision AVR 项目的遗留代码。我想迁移到 AVR Studio 甚至更好的 NetBeans(使用 AVR 工具链或 WinAVR)。 有什么想法吗? 最佳答案 你应该
我是一名优秀的程序员,十分优秀!