Subversion Repositories Code-Repo

Rev

Rev 215 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 215 Rev 226
Line 43... Line 43...
43
    SPI1CON     = 0x18225;
43
    SPI1CON     = 0x18225;
44
 
44
 
45
    INTEnableInterrupts();
45
    INTEnableInterrupts();
46
}
46
}
47
 
47
 
48
int SPI1_Write(unsigned char *array, unsigned int count, void (*tx_callback)(void)) {
48
int SPI1_Write(char *array, int length, void (*tx_callback)(void)) {
49
    spi_data_ptr->tx_callback = tx_callback;
49
    spi_data_ptr->tx_callback = tx_callback;
50
 
50
 
51
    if (count > SPI1_BUFFER_SIZE)
51
    if (length > SPI1_BUFFER_OUT_SIZE)
52
        return 0;
52
        return 0;
53
    if (spi_data_ptr->buffer_out_len != 0)
53
    if (spi_data_ptr->buffer_out_len != 0)
54
        return 0;
54
        return 0;
55
 
55
 
56
    // Put the data to send into the outbound buffer
56
    // Put the data to send into the outbound buffer
57
    spi_data_ptr->buffer_out_len = count;
57
    spi_data_ptr->buffer_out_len = length;
58
    spi_data_ptr->buffer_out_ind = count-1;
58
    spi_data_ptr->buffer_out_ind = length-1;
59
    int i;
59
    int i;
60
    for (i = 0; i < count; i++) {
60
    for (i = 0; i < length; i++) {
61
        spi_data_ptr->buffer_out[i] = array[i];
61
        spi_data_ptr->buffer_out[i] = array[i];
62
    }
62
    }
63
    IEC0SET = 0x02000000; // Enable TX interrupt
63
    IEC0SET = 0x02000000; // Enable TX interrupt
64
    return 1;
64
    return 1;
65
}
65
}