두 개의 시프트 레지스터 4094, 일부 7 세그먼트 LED 및 ATmega 328p를 표시하고 싶습니다. 내 curent 코드는 다음과 같습니다7 세그먼트 LED + 4094
uint8_t LED[10]={0b11111100,0b01100000,0b011011010,0b011110010,0b01100110,0b10110110,0b10111110,0b111000000,0b11111110,0b11110110};
int j =Led; //input from the main
uint8_t num_1=Led/10;
uint8_t num_2=Led%10;
Strobe=0;
uint8_t mask=0x80;
for(uint8_t i=0; i<8; i++)
{
mask=mask>>1;
if((LED[num_1] & mask) ==1)
{
DATA= 1;
}
else
{
DATA= 0;
}
pulse();
}
mask=0x80;
for(uint8_t i=0; i<8; i++)
{
mask=mask>>1;
;
if((LED[num_2] & mask)==1)
{
DATA= 1;
}
else
{
DATA= 0;
}
pulse();
}
그러나 물론이 제대로 작동하지 않습니다. 단지 0을 생성합니다. 올바른 방향으로 나를 가리킬 수 있습니까? 편집 : 나는 코드의 목적은 당신은 루프의 끝에서 mask = mask>>1
을 넣어 갈까요, 00에서 16
자세한 내용을 입력 해주세요. 일부 비트 패턴 또는 일련의 비트 패턴을 생성하는 것이 목표입니까? 코드는 C와 유사합니다. 실제로 C입니까? – Codor
4094는 shift-in 값을 출력을 저장하는 내부 레지스터에 저장하기 위해 여분의 신호가 필요합니다. 나는 너를 보살 피는 것을 보지 못했다. – Cactus
코드를 표시하려면 언어에 태그를 지정해야합니다. 사람들이 질문을 찾도록 돕는 것 외에도 구문 강조 표시에도 영향을 미칩니다. – crashmstr