اطلاعیه

Collapse
No announcement yet.

کمک برای برنامه نویسی

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    کمک برای برنامه نویسی

    [سلام کسی میتونه این برنامه رو برای من توضیح بده این برنامه تابلو روان گه حالت گردش داره!!!!!!!!!!!!!!!!!
    #include <mega32.h>

    #include <stdio.h>
    #include <delay.h>
    #include "font.h"
    #include "ENG font.c"

    #define LED_LEFT PORTA
    #define LED_RIGHT PORTB
    //================================================== ====
    //================================================== ====
    unsigned int Angle;
    unsigned int One_Degree_OCR_Value;
    unsigned int Pixel_Num,Pixel_Count;
    unsigned int Code_Table[400];
    flash unsigned char Statement[]="somaie zameni";
    //================================================== ====
    //================================================== ====
    void InitDevice()
    {
    DDRA=0xFF;
    DDRB=0xFF;
    PORTD=0x04;

    GICR|=0x40;
    MCUCR=0x03;
    MCUCSR=0x00;
    GIFR=0x40;

    TCCR1B=0x03;
    TIMSK=0x10;
    LED_RIGHT=0xFF;
    LED_LEFT=0xFF;
    #asm("sei"
    }
    //================================================== ====
    //================================================== ====
    interrupt [TIM1_COMPA] void timer1_compa_isr(void)
    {
    unsigned int n;

    if(Angle==180)
    Pixel_Count=0;
    if(Angle<180)
    {
    if(Pixel_Count<Pixel_Num)
    {
    LED_RIGHT=~Code_Table[Pixel_Count];
    n=Pixel_Count+180;
    if(n<Pixel_Num)
    LED_LEFT=~Code_Table[n];
    Pixel_Count++;
    }
    else
    LED_RIGHT=0xFF;
    }
    else
    {
    if(Pixel_Count<Pixel_Num)
    {
    LED_LEFT=~Code_Table[Pixel_Count];
    n=Pixel_Count+180;
    if(n<Pixel_Num)
    LED_LEFT=~Code_Table[n];
    Pixel_Count++;
    }
    else
    LED_LEFT=0xFF;
    }
    OCR1A+=One_Degree_OCR_Value;
    Angle++;

    }
    //================================================== ====
    //================================================== ====
    interrupt [EXT_INT0] void ext_int0_isr(void)
    {
    One_Degree_OCR_Value=TCNT1/360;
    OCR1A=One_Degree_OCR_Value;
    TCNT1=0;
    Angle=0;
    Pixel_Count=0;
    }
    //================================================== ====
    //================================================== ====
    void main()
    {
    unsigned char i=0,j,map,width,ch;
    unsigned int offset;

    do
    {
    ch=Statement[i];
    map=Eng_Font.mapping_table[ch];
    offset=Eng_Font.offset_table[map];
    width=Eng_Font.width_table[map];
    for(j=0;j<width;j++)
    {
    Code_Table[Pixel_Count]=Eng_Font.font_table[offset];
    Code_Table[Pixel_Count]=(Code_Table[Pixel_Count]<<8)+Eng_Font.font_table[offset+1];
    Code_Table[Pixel_Count]>>=4;
    Pixel_Count++;
    offset+=2;
    }
    }while(Statement[++i]!='\0'
    Pixel_Num=Pixel_Count;
    Pixel_Count=0;

    InitDevice();
    while(1)
    {
    }
    }
لطفا صبر کنید...
X