roboforum.ru

Технический форум по робототехнике.
Текущее время: 21 май 2025, 07:56

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: MBI5030 не могу запустить шим
СообщениеДобавлено: 11 ноя 2011, 15:30 
Не в сети

Зарегистрирован: 11 ноя 2011, 15:28
Сообщения: 4
подскажите пожалуйста, почему не получается задать яркость светодиодам, работает так если больше 0 то светится нужный светодиод, а если равно 0 то не светится, как использовать шим? что не так в коде?
Код:
#define   MBI_PIN_LATCH      PORTC.2
#define   MBI_PIN_SDI   PORTC.0
#define   MBI_PIN_SDO   PORTC.3
#define   MBI_PIN_SCK   PORTC.1

#define   MBI_DATA_LATCH      1
#define   MBI_GLOBAL_LATCH           3
#define   MBI_READ_CONFIG      5
#define   MBI_ENABLE_ERR_DETECT   7
#define   MBI_READ_ERR_STATUS   9
#define   MBI_WRITE_CONFIG      10

void MBI_init() {   
   
    PORTC = 0x0000;   
}   
   
   
void MBI_write(unsigned int DATA, unsigned char MODE){   
    unsigned char i; 
    unsigned int temp; 
    for(i=0; i<16; i++) {   
       temp = DATA&(0x01<<i);   
        if(temp) MBI_PIN_SDI = 1;   
        else MBI_PIN_SDI = 0;   
        if(i>(15 - MODE)) {   
            MBI_PIN_LATCH = 1;     
            // delay_us(50);   
            }   
        MBI_PIN_SCK = 1;   
       // delay_us(50);   
        MBI_PIN_SCK = 0;       
    }   
    MBI_PIN_LATCH = 0;   
    MBI_PIN_SDI = 0;     
}   
void MBI_WriteGrayScale(unsigned int *ptr, unsigned char len){   
    unsigned char i;   
    for(i=0; i<(len-1);i++) {   
        MBI_write(*(ptr+i),MBI_DATA_LATCH);   
    }   
    MBI_write(*(ptr+(len-1)),MBI_GLOBAL_LATCH);           
}     
void MBI_WriteConfig(unsigned int config, unsigned char len) {   
    unsigned char i;   
    for(i=0;i <(len-1);i++) {   
        MBI_write(config,MBI_DATA_LATCH);     
    }     
    MBI_write(config,MBI_WRITE_CONFIG);   
}     
   
void MBI_ReadConfig(unsigned int *config, unsigned char len, unsigned char MODE){   
    unsigned char i, j;   
    MBI_write(0x0000,MODE);   
    MBI_PIN_SDI = 0;   
    for(i=0; i<len;i++){   
        for(j=0; j<16; j++){   
            MBI_PIN_SCK = 1;   
            //delay_us(50);
            if(MBI_PIN_SDO) *(config+i)|=(0x0001<<j);   
            else *(config+i)&=(~(0x0001<<j));   
            MBI_PIN_SCK = 0;       
        }   
    }         
}
void main(void)
{
const unsigned int d[16] = {0x000,0x2345,0x3456,0x4567,0x5678,0x6789,0x7890,0x8901,0x9012,0x0123,0x0000,0x1111,0x2222,0x3333,0x4444,0x5555};   
unsigned int config_reg[4];       
 
MBI_init();   
MBI_WriteConfig(0b0011101010101100, 1);
MBI_WriteGrayScale(&d[0],16);   
}



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MBI5030 не могу запустить шим
СообщениеДобавлено: 11 ноя 2011, 15:59 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
вполне возможно, что у нас разые даташиты, но... в моём есть: sdi, dclk, le, gclk и sdo. сильно в код не вникал, но есть подозрение, что вы недопоняли значение входа gclk.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MBI5030 не могу запустить шим
СообщениеДобавлено: 11 ноя 2011, 16:04 
Не в сети

Зарегистрирован: 11 ноя 2011, 15:28
Сообщения: 4
gclk от внешнего кварцевого генератора тактируется


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO