我需要颠倒板上 LED 颜色的顺序
I need to reverse the order of LED colors in my board
我需要将 LED 颜色的顺序从 'PORT B' 中的原始顺序反转为 'PORT D'。
我在 'PORT B' 中的原始颜色是蓝色、紫色、绿色、红色、黄色、绿松石色、白色和无颜色。现在我需要颠倒 'Port 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
我需要将 LED 颜色的顺序从 'PORT B' 中的原始顺序反转为 'PORT D'。 我在 'PORT B' 中的原始颜色是蓝色、紫色、绿色、红色、黄色、绿松石色、白色和无颜色。现在我需要颠倒 'Port 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