Читаем Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С полностью

     position_laser(0x80,i);

     delay;

    }

    shutter(close);

    PORTB=0x00; //включает красные светодиоды индикатора

    break;

   case 0xFF: //PA4 - Правая пила под углом 45 градусов

               // с Юго-Запада на СВ

    PORTB = 0x10; // подсвечивает светодиод порта PORTB

    position_laser(0x00,0x00);

    shutter(open);

    for(i=0; i=255; i++) {

     i = (unsigned char)(i);

     position_laser(i, i);

     delay;

    }

    shutter(close);

    PORTB=0x00; //включает красные светодиоды индикатора

    break;

   case 0xF7: //PA3 - Левая пила под углом 45 градусов

              //с ЮВ на СЗ

    PORTB = 0x08; // подсвечивает светодиод порта PORTB

    delay;

    PORTB=0x00; // включает красные светодиоды индикатора

    break;

   case 0xFB: //PA2 Окружность

    PORTB = 0x04; // подсвечивает светодиод порта PORTB

    delay;

    PORTB=0x00; //включает красные светодиоды индикатора

    break;

   case 0xFD: //PA1 Синусоида

    PORTB = 0x02; // подсвечивает светодиод порта PORTB

    delay;

    PORTB=0x00; // включает красные светодиоды индикатора

    break;

   case 0xFE: //PA0 Остановка

    PORTB = 0x01; // подсвечивает светодиод порта PORTB

    position_laser(0x00,0x00);

    shutter(close);

    delay;

    PORTB=0x00; // включает красные светодиоды индикатора

    go = 0;

    break;

   case 0xFF:

    break;

   default:

    ; //все остальные случаи

   }//конец switch(new_PORTA)

   old_PORTA = new_PORTA;

  }//конец if(new_PORTA ! = old_PORTA)

 }//конец while(go)

}//конец main

//********************************************************************

// initialize_ports: производится конфигурация портов в качестве

//входных/выходных

//********************************************************************

void initialize_ports(void)

{

DDRA=0x00; //установить PORTA в качестве входного порта

DDRB=0xFF; //установить PORTB в качестве выходного порта

PORTB=0x00; //включить красные светодиоды индикатора

DDRS=0xFF; //установить PORTT в качестве выходного порта

DDRP=0xFF; //установить PORTP в качестве выходного порта

}

//********************************************************************

/// /shutter(int action) : открытие и закрытие затвора

//********************************************************************

void shutter(int action) {

 if (action == open) PORTP = 0x01;

 if (action == close) PORTP = 0x00;

}

//********************************************************************

//position_laser(unsigned char x_pos, unsigned char y_pos): посылает

//сигнал управления для каналов X и Y гальванометра из портов PORTS

//и PORTT соответственно.

//********************************************************************

void position_laser(char x_pos,char y_pos) {

 PORTS = x_pos;

 PORTT = y_pos;

}

//********************************************************************

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже