예제 #1
0
파일: lcd.c 프로젝트: traffaillac/uC-sdk
//we will have to change if we abstract 
void write_register(lcd_t *lcd, uint8_t byte, int rs, int rw)
{
    gpio_set(lcd->rs, rs);
    gpio_set(lcd->rw, rw);

    //if (lcd->type == COM8BITS)
    {
        gpio_set(lcd->cs, 0);
        ssp_write(lcd->ssp, byte);
        gpio_set(lcd->cs, 1);
    }
/*    else
    {
        gpio_set(lcd->cs, 0);
        ssp_write(lcd->ssp, byte);
        gpio_set(lcd->cs, 1);
    }*/

    gpio_set(lcd->e, 0);
    delay(lcd, 1);
    gpio_set(lcd->e, 1);
    delay(lcd, 1); //min: 300ns
    gpio_set(lcd->e, 0);
    delay(lcd, 80); //50us for most of operations
}
예제 #2
0
파일: ssp.c 프로젝트: OPSF/uClinux
void __stack_smash_handler(char func[], int damaged)
{
	static const char message[] = ": stack smashing attack in function ";

	block_signals();

	ssp_write(STDERR_FILENO, __uclibc_progname, message, func);

	/* The loop is added only to keep gcc happy. */
	while(1)
		terminate();
}
예제 #3
0
파일: ssp.c 프로젝트: OPSF/uClinux
void __stack_chk_fail(void)
{
	static const char msg1[] = "stack smashing detected: ";
	static const char msg3[] = " terminated";

	block_signals();

	ssp_write(STDERR_FILENO, msg1, __uclibc_progname, msg3);

	/* The loop is added only to keep gcc happy. */
	while(1)
		terminate();
}
예제 #4
0
int main(void)
{
	int i;
	uint8_t ssp_val;
	uint8_t serial_clock_rate;
	uint8_t clock_prescale_rate;

	gpio_setup();

	/* Freq About 1.12MHz => Freq = PCLK / (CPSDVSR * [SCR+1]) with PCLK=PLL1=288MHz */
	clock_prescale_rate = 2;
	serial_clock_rate = 128;

	ssp_init(SSP1_NUM,
			SSP_DATA_8BITS,
			SSP_FRAME_SPI,
			SSP_CPOL_0_CPHA_0,
			serial_clock_rate,
			clock_prescale_rate,
			SSP_MODE_NORMAL,
			SSP_MASTER,
			SSP_SLAVE_OUT_ENABLE);

	ssp_val = 0x0;

	while (1) {

		ssp_write(SSP1_NUM, (uint16_t)ssp_val);

		gpio_set(GPIO2, GPIOPIN1); /* LED on */

		for (i = 0; i < 1000; i++) /* Wait a bit. */
			__asm__("nop");

		gpio_clear(GPIO2, GPIOPIN1); /* LED off */

		ssp_val++;
	}

	return 0;
}
예제 #5
0
파일: spi_api.c 프로젝트: fenrir-naru/mbed
int spi_master_write(spi_t *obj, int value) {
    ssp_write(obj, value);
    return ssp_read(obj);
}
예제 #6
0
파일: lcd.c 프로젝트: traffaillac/uC-sdk
//FIX THAT
void delay(lcd_t *lcd, uint32_t t)
{
    uint32_t i;
    for (i = 0 ; i < t ; i++)
        ssp_write(lcd->ssp, 0xff);
}
예제 #7
0
파일: spi_api.c 프로젝트: NXPmicro/mbed
int spi_master_write(spi_t *obj, int value) {
    ssp_write(obj, value);
    while (obj->spi->SR & SSP_SR_BSY_Msk);  /* Wait for send to finish      */
    return (ssp_read(obj));
}