Исправить ошибки в программе "бегущая строка" - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Пишу программу бегущей стороки и вроде все было нормально, теперь ошибку пишет для строки с unsignedint j=0; такую как '(' expected. Не понимаю, что ему не нравиться?!
#include <mega16.h>
#include <stdio.h>
#include <LCD.h>
unsignedint j=0;
char str[100]={' ','h','e','l','l','o','!'};
char screen[100]={' ','h','e','l','l','o','!'};
charspeed=0xA0;
inti=1,k=0,length=6,length_screen=6;
bittimer,dir,flag;
 
void print(void)
{
if(!timer) return;
if(k<41)
    {
lcd_gotoxy(40-k%41,1);
for(j=0;j<=k%41;j++)
lcd_putchar(screen[j]); 
    } 
else
    {
lcd_gotoxy(0,1);
for(j=k-40;j<=k;j++)
lcd_putchar(screen[j]);
if(k>(40+length_screen))
            k=0; 
    }  
timer=0; 
}
 
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// Place your code here
  TCNT0=speed;
if(dir==0)                                                              
k++; 
if(dir==1)                                                              
{
if(k==0)
        k=40+length_screen; 
else
k--;  
    }
timer=1;    
if(PINC.4==0)
speed+=5;
if(PINC.7==0)
speed-=5;
}
 
#asm
.equ __lcd_port=0x1b; PORTA 
#endasm
 
// Declare your global variables here
 
void main(void)
{
// Declare your local variables here
 
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
PORTA=0xF0;
DDRA=0xFF;
 
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
PORTB=0x00;
DDRB=0xFF;
 
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
PORTC=0x91;
DDRC=0x00;
 
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
PORTD=0x00;
DDRD=0x02;
 
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x05;
TCNT0=0x00;
OCR0=0x00;
 
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
 
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
 
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
 
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x01;
 
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x10;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x19;
 
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
 
#asm("sei")
lcd_init(40); 
lcd_clear();        
lcd_gotoxy(0,1);      
while (1)
      {
      // Place your code here
while(UCSRA.7==1) 
       {PORTB=UCSRA ;
str[i]=UDR 
if(str[i]==0x0D)                                               
            {               
for(i=0;i<=100;i++)
                {screen[i]=str[i];str[i]=0;length_screen=length;}       
             i=1;                
            }
else
            {
if(str[i]!=0x08) {i++;length=i;}                           
else
if(i!=1) i--;
            };
 
         PORTC=str[i-1];       
       };
       PORTB=UCSRA;
print();                                                         
if(PINC.0==0 && flag)
            {dir^=1;flag=0;}
if(PINC.0==1)
flag=1;
};
}

Решение задачи: «Исправить ошибки в программе "бегущая строка"»

textual
Листинг программы
unsigned int j;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы