main
Default mainpagebasic-can-projectmain
Description Source Call Graph
Start Line: 533
int main(void)
{    
    unsigned char CharReceive = 0;
    unsigned char dummy = 0;    
    unsigned int time;

    TRACE_CONFIGURE(DBGU_STANDARD, 115200, BOARD_MCK);   
    printf("-- Basic CAN Project %s --\n\r", SOFTPACK_VERSION);
    printf("-- %s\n\r", BOARD_NAME);
    printf("-- Compiled: %s %s --\n\r", __DATE__, __TIME__);
        
#if defined( AT91C_CAN_VR )
    printf("IP version: 0x%X\n\r", *(unsigned int*)AT91C_CAN_VR);
#else
    printf("IP version: 0x%X\n\r", *(unsigned int*)AT91C_CAN0_VR);
#endif

    PIO_InitializeInterrupts(0); 

    if( CAN_Init( 1000, &canTransfer1, NULL ) == 1 ) {
        printf("INIT OK\n\r");

        InitCANInRecept();
        ConfigureRtt();
        DisplayMenu();
                 
        while(1) {
            
            while( CAN_STATUS_SUCCESS != CAN_Read( &canTransfer1 ) ){}
            // wait answer
            
            while( CAN_IsInIdle(&canTransfer1) ) {
               
                CharReceive = 0;
                if ( DBGU_IsRxReady() ) {
                    
                    CharReceive = DBGU_GetChar();
                    
                    switch(CharReceive) {

                        case '1': {
                            while(!DBGU_IsRxReady()) {                        
                                
                                // Transmit, with acceptance mask
                                Test_TransmitWithAccMask(1, 0xAABBCCDD, 0x11223344);
                                
                                // Wait for the next second
                                time = RTT_GetTime(AT91C_BASE_RTTC);
                                while (time == RTT_GetTime(AT91C_BASE_RTTC));
                            }
                            dummy = DBGU_GetChar();                           
                        }
                        break;
                        case '2': {                           
                            while(!DBGU_IsRxReady()) {                        
                                
                                // Transmit, no acceptance mask
                                Test_TransmitWithoutAccMask(2, 0x12345678, 0xABCDEFAB);                            
                                
                                // Wait for the next second
                                time = RTT_GetTime(AT91C_BASE_RTTC);
                                while (time == RTT_GetTime(AT91C_BASE_RTTC));
                            }   
                            dummy = DBGU_GetChar();
                        }
                        break;
                        case '3': {
                            
                            DumpRegisters();
                        }
                        break;
                        default:
                            // nothing
                        break;
                    }
                
                    DisplayMenu();    
                }
            }
            if( CharReceive == 0 ) {
                printf("Receive - Maibox Number: %02d - Data (Low/High): %08X %08X\n\r", 
                    canTransfer1.mailbox_number, 
                    canTransfer1.data_low_reg,
                    canTransfer1.data_high_reg);
            }
        }
    }
    else {
        printf("INIT PB\n\r");
    }

    return 0;
}