[an error occurred while processing this directive]
Я так делал
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено _Bill 13 ноября 2006 г. 13:54
В ответ на: Подскажите, для АВР нельзя в Си сделать динамическую переадресацию портов? (+) отправлено <font color=gray>507</font> 13 ноября 2006 г. 13:18


//
// Motor hadware port definitions
//
#define MOTOR1_PORT PORTB
#define MOTOR1_DDR DDRB
#define MOTOR1_MASK 0x3C

#define MOTOR2_PORT PORTC
#define MOTOR2_DDR DDRC
#define MOTOR2_MASK 0x0F

//
// Global variables
//
ST_DATA Motor1Data;
__flash ST_MCB Motor1 = {(char*)&MOTOR1_PORT, MOTOR1_MASK, &Motor1Data, 1};

#if NMOTORS > 1
ST_DATA Motor2Data;
__flash ST_MCB Motor2 = {(char*)&MOTOR2_PORT, MOTOR2_MASK, &Motor2Data, 2};
#endif

//char __flash StepTable[] = {0x4A, 0x29, 0x13, 0x89};
char __flash StepTable[] = {0x45, 0x26, 0x8A, 0x19};
//
// ** InitMotor -- motor initializer routine
//
void InitStepMotor(void)
{
MOTOR1_DDR |= MOTOR1_MASK; // Set motor 1 port as output
*Motor1.Port &= ~Motor1.Mask; // Motor 1 is stoped
Motor1.Data->Status = 0; //
#if NMOTORS > 1
MOTOR2_DDR |= MOTOR2_MASK; // Set motor 2 port as output
*Motor2.Port &= ~Motor2.Mask; // Motor 2 is stoped
Motor2.Data->Status = 0; //
#endif
}


Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа
Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание