[an error occurred while processing this directive]
No problema (+)
(«Телесистемы»: Конференция «Программируемые логические схемы и их применение»)

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

Отправлено Сидоргек 27 августа 2004 г. 10:39
В ответ на: А текст РАСПАКОВЩИКА можете опубликовать? Буду ооочень благодарен (тоже хочу разобраться). отправлено Maksim Z. 26 августа 2004 г. 18:03

#include "Xmitter.h"

#ifndef NO_ALTERA
#include "altera_data.c"
#endif

// Передача байта через SPI
#ifndef NO_ALTERA
static void spi(unsigned char byt)
{
SPDR = byt;
while(!SPSR.7);
}
#endif

// Заливка прошивки в Альтеру
void AlteraLoad(void)
{
#ifndef NO_ALTERA
unsigned char flash * pd_ptr;
unsigned char flash * zb_ptr;
unsigned char curr_bit, n;
#endif

// Разрешаю работу со внешней шиной
MCUCR = 0b11000000;
XMCRA = 0b00001110;
// Отключаю адрес от порта С
XMCRB = 0b00000111;

// Настройка контроллера SPI
SPCR = 0x78;
SPSR = 0x00;

// Управляющие ноги
PORTB &= 0b11111000;
DDRB |= 0b00000111;
PORTE |= 0b10000000;
DDRE |= 0b01000000;

#ifndef NO_ALTERA

// Начало загрузки
nCONFIG = 0;
delay_ms(10);
nCONFIG = 1;
while (!nSTATUS);

// Распаковка и загрузка
pd_ptr = &packed_data[0];
zb_ptr = &zero_burst_bits[0];
curr_bit = 0b00000001;

while (!CONF_DONE)
{
// Если биты закончились - к след. байту
if (!curr_bit)
{
zb_ptr ++;
curr_bit = 0b00000001;
}

if ((*zb_ptr) & curr_bit)
{ // Это последовательность нулевых байт
n = *(pd_ptr ++);

spi(0);
while(n--)
{
spi(0);
}
}
else
{ // Это просто байт
spi(*(pd_ptr ++));
}

// Следующий бит
curr_bit <<= 1;
}

// Для того, что бы прошивка заработала
spi(0);
spi(0);
spi(0);
spi(0);
spi(0);

#endif

// Сброс схемы в Альтере
ARESET = 0;
delay_ms(10);
ARESET = 1;
delay_ms(10);
}

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

Ответы


Отправка ответа

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

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

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru