سلام
کدی نوشتم که از پورت uart عبارت dxxxx را دریافت و بر روی نمایشگر سون سگمنت چهار رقمی نما یش دهد . x عددی بین 1 تا 9 می باشد.نمی دونم کدوم خط اشتباه است دوستان راهنمایی بفرمایید.
با تشکر
[code=c]
#include <mega32.h>
#include <stdio.h>
#include <delay.h>
#include <string.h>
#define SIM
const char num[]={
0x3F,0x06,0x5B,0x4F,0x66,
0x6D,0x7D,0x07,0x7F,0x6F
};
char temp, data[9],index=0;
char flag,refresh;
interrupt [USART_RXC] void usart_rx_isr(void)
{
//dadeh ra bekhan
flag=1;
data[index++]=UDR;
data[index]=0x00;//null
temp=data[index++];
}
void main(void)
{
DDRA=0xFF;
DDRB=0x0F;
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x90;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x19;
TIMSK=0x00;
while (1)
{
if(flag)
{
delay_ms(500);
#asm("cli"
flag=0;
index=0;
for(refresh=0;refresh<200;refresh++)
{
#ifdef SIM
PORTA=0x00;
#endif
temp=data[index++];
PORTA=num[temp];
PORTB=~0x01;
delay_ms(1);
#ifdef SIM
PORTA=0x00;
#endif temp=data[index++];
PORTA=num[temp];
PORTB=~0x02;
delay_ms(1);
#ifdef SIM
PORTA=0x00;
#endif
temp=data[index++];
PORTA=num[temp];
PORTB=~0x04;
delay_ms(1);
#ifdef SIM
PORTA=0x00;
#endiftemp=data[index++];
PORTA=num[temp];
PORTB=~0x08;
delay_ms(1);
}
}
}
}
[/code]
کدی نوشتم که از پورت uart عبارت dxxxx را دریافت و بر روی نمایشگر سون سگمنت چهار رقمی نما یش دهد . x عددی بین 1 تا 9 می باشد.نمی دونم کدوم خط اشتباه است دوستان راهنمایی بفرمایید.
با تشکر
[code=c]
#include <mega32.h>
#include <stdio.h>
#include <delay.h>
#include <string.h>
#define SIM
const char num[]={
0x3F,0x06,0x5B,0x4F,0x66,
0x6D,0x7D,0x07,0x7F,0x6F
};
char temp, data[9],index=0;
char flag,refresh;
interrupt [USART_RXC] void usart_rx_isr(void)
{
//dadeh ra bekhan
flag=1;
data[index++]=UDR;
data[index]=0x00;//null
temp=data[index++];
}
void main(void)
{
DDRA=0xFF;
DDRB=0x0F;
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x90;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x19;
TIMSK=0x00;
while (1)
{
if(flag)
{
delay_ms(500);
#asm("cli"

flag=0;
index=0;
for(refresh=0;refresh<200;refresh++)
{
#ifdef SIM
PORTA=0x00;
#endif
temp=data[index++];
PORTA=num[temp];
PORTB=~0x01;
delay_ms(1);
#ifdef SIM
PORTA=0x00;
#endif temp=data[index++];
PORTA=num[temp];
PORTB=~0x02;
delay_ms(1);
#ifdef SIM
PORTA=0x00;
#endif
temp=data[index++];
PORTA=num[temp];
PORTB=~0x04;
delay_ms(1);
#ifdef SIM
PORTA=0x00;
#endiftemp=data[index++];
PORTA=num[temp];
PORTB=~0x08;
delay_ms(1);
}
}
}
}
[/code]
دیدگاه