微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我需要颠倒电路板中 LED 颜色的顺序

如何解决我需要颠倒电路板中 LED 颜色的顺序

我需要将 LED 颜色的顺序从“端口 B”中的原始顺序反转为“端口 D”。 我在“PORT B”中的原始颜色是蓝色、紫色、绿色、红色、黄色、绿松石色、白色,并且没有颜色。现在我需要颠倒“端口 D”中的顺序。我在正确操作的 while 循环中遇到了问题。

#include <math.h> 
#include <p18f4620.h>
#pragma config OSC = INTIO67
#pragma config WDT = OFF
#pragma config LVP = OFF
#pragma config BOREN = OFF

void Delay_One_Sec(){
for(int I=0; I <17000; I++);}

void main(){
TRISA = 0xff;
TRISB = 0x00;
TRISC = 0x00; 
TRISD = 0x00;
ADCON1 = 0x0f;

while (1)
{
    for(char i=0;i<8;i++)
    {
     PORTB = i;
     PORTD = i<<2;
     
     Delay_One_Sec();
     Delay_One_Sec();
    }
}

解决方法

如果你想将序列 [0,1,...,7] 和 [7,6,0] 一起迭代,只需使用算术:

#include <stdio.h>

int main(void) {
    for (int i=0; i < 8; i++) {
        int forward = i;
        int backward = 7 - i;
        printf("forward: %d,backward: %d\n",forward,backward);
    }
    return 0;
}
$ ./a.out 
forward: 0,backward: 7
forward: 1,backward: 6
forward: 2,backward: 5
forward: 3,backward: 4
forward: 4,backward: 3
forward: 5,backward: 2
forward: 6,backward: 1
forward: 7,backward: 0

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?