示例#1
0
文件: memEEPROM.c 项目: keimi/SUCHAI
unsigned char readEEPROM1(unsigned char address){
    if( i2c1_slave_ready(MEP_EEPROM_ID, 0x0FFF) == 0 )
        return 0;

    char ret;
    char _address[] = {MEP_EEPROM_ID, (char)address};
    i2c1_master_fgets(&ret, 1, _address, 2);
    return (unsigned char)ret;
}
示例#2
0
void con_cmd_handler(void)
{
    if(con_entry_flag && con_entry_index > 0 && !con_arg_tolong)
    {
        con_cmd_from_entry(con_entry);
        con_printf("\r\n");

        if(con_arg_tolong)
        {
            con_printf("Arg too long. Max lenght = ");
            con_putcl(CON_ARG_WIDTH + 48);
            con_printf("\r\n>>");
            con_arg_tolong = FALSE;
            con_entry_flag = FALSE;
            return;
        }

        if((strcmp(con_cmd, "test") == 0) ||
                (strcmp(con_cmd, "test_m1") == 0))
        {
            char test[10] = {4,1,9,1,9,5,6,7,8,9};
            char recv[10] = {0,0,0,0,0,0,0,0,0,0};
            char len = 10;
            char address[] = {I2C_EEPROM_ID, 5};
            int count = 0;
            int i = 0;

            //Test write
            count = i2c1_master_fputs(test, len, address, 2);

            //Print results
            sprintf(buff, "Test write: ");
            con_printf(buff);
            for(i=0; i<len; i++)
            {
                sprintf(buff, "%d, ", test[i]);
                con_printf(buff);
            }
            sprintf(buff, "\n    Wrote %d from %d bytes\n", count, len);
            con_printf(buff);

            //Test read
            count = i2c1_master_fgets(recv, len, address, 2);

            //Print results
            sprintf(buff, "Test read: ");
            con_printf(buff);
            for(i=0; i<len; i++)
            {
                sprintf(buff, "%d, ", recv[i]);
                con_printf(buff);
            }
            sprintf(buff, "\n    Read %d from %d bytes\n", count, len);
            con_printf(buff);

            con_printf("\n>>");
            con_arg_tolong = FALSE;
            con_entry_flag = FALSE;
            return;
        }

        if(strcmp(con_cmd, "test_m2") == 0)
        {
            char test[10] = {3,1,2,1,2,5,6,7,8,2};
            char recv[10] = {0,0,0,0,0,0,0,0,0,0};
            char len = 10;
            char address[] = {I2C_EEPROM_ID, 3};
            int count = 0;
            int i = 0;

            //Test write
            count = i2c2_master_fputs(test, len, address, 2);

            //Print results
            sprintf(buff, "Test write: ");
            con_printf(buff);
            for(i=0; i<len; i++)
            {
                sprintf(buff, "%d, ", test[i]);
                con_printf(buff);
            }
            sprintf(buff, "\n    Wrote %d from %d bytes\n", count, len);
            con_printf(buff);

            //Test read
            count = i2c2_master_fgets(recv, len, address, 2);

            //Print results
            sprintf(buff, "Test read: ");
            con_printf(buff);
            for(i=0; i<len; i++)
            {
                sprintf(buff, "%d, ", recv[i]);
                con_printf(buff);
            }
            sprintf(buff, "\n    Read %d from %d bytes\n", count, len);
            con_printf(buff);

            con_printf("\n>>");
            con_arg_tolong = FALSE;
            con_entry_flag = FALSE;
            return;
        }

        if(strcmp(con_cmd, "test_m3") == 0)
        {
            char test[10] = {3,1,8,1,2,8,6,7,8,1};
            char recv[10] = {0,0,0,0,0,0,0,0,0,0};
            char len = 10;
            char address[] = {I2C_EEPROM_ID, 3};
            int count = 0;
            int i = 0;

            //Test write
            count = i2c3_master_fputs(test, len, address, 2);

            //Print results
            sprintf(buff, "Test write: ");
            con_printf(buff);
            for(i=0; i<len; i++)
            {
                sprintf(buff, "%d, ", test[i]);
                con_printf(buff);
            }
            sprintf(buff, "\n    Wrote %d from %d bytes\n", count, len);
            con_printf(buff);

            //Test read
            count = i2c3_master_fgets(recv, len, address, 2);

            //Print results
            sprintf(buff, "Test read: ");
            con_printf(buff);
            for(i=0; i<len; i++)
            {
                sprintf(buff, "%d, ", recv[i]);
                con_printf(buff);
            }
            sprintf(buff, "\n    Read %d from %d bytes\n", count, len);
            con_printf(buff);

            con_printf("\n>>");
            con_arg_tolong = FALSE;
            con_entry_flag = FALSE;
            return;
        }

        if(strcmp(con_cmd, "test_m1s2") == 0)
        {
            char test[10] = {0,1,2,3,4,5,6,7,8,9};
            char recv[10] = {0,0,0,0,0,0,0,0,0,0};
            char len = 10;
            char address[] = {0x0B, 3};
            int count = 0;
            int i = 0;

            //Test write
            count = i2c1_master_fputs(test, len, address, 2);

            //Print results
            sprintf(buff, "Test write: ");
            con_printf(buff);
            for(i=0; i<len; i++)
            {
                sprintf(buff, "%d, ", test[i]);
                con_printf(buff);
            }
            sprintf(buff, "\n    Wrote %d from %d bytes\n", count, len);
            con_printf(buff);

            //Test read
            count = i2c1_master_fgets(recv, len, address, 2);

            //Print results
            sprintf(buff, "Test read: ");
            con_printf(buff);
            for(i=0; i<len; i++)
            {
                sprintf(buff, "%d, ", recv[i]);
                con_printf(buff);
            }
            sprintf(buff, "\n    Read %d from %d bytes\n", count, len);
            con_printf(buff);

            con_printf("\n>>");
            con_arg_tolong = FALSE;
            con_entry_flag = FALSE;
            return;
        }

        if(strcmp(con_cmd, "test_m2s1") == 0)
        {
            char test[10] = {0,1,2,3,4,5,6,7,8,9};
            char recv[10] = {0,0,0,0,0,0,0,0,0,0};
            char len = 10;
            char address[] = {0x0A, 3};
            int count = 0;
            int i = 0;

            //Test write
            count = i2c2_master_fputs(test, len, address, 2);

            //Print results
            sprintf(buff, "Test write: ");
            con_printf(buff);
            for(i=0; i<len; i++)
            {
                sprintf(buff, "%d, ", test[i]);
                con_printf(buff);
            }
            sprintf(buff, "\n    Wrote %d from %d bytes\n", count, len);
            con_printf(buff);

            //Test read
            count = i2c2_master_fgets(recv, len, address, 2);

            //Print results
            sprintf(buff, "Test read: ");
            con_printf(buff);
            for(i=0; i<len; i++)
            {
                sprintf(buff, "%d, ", recv[i]);
                con_printf(buff);
            }
            sprintf(buff, "\n    Read %d from %d bytes\n", count, len);
            con_printf(buff);

            con_printf("\n>>");
            con_arg_tolong = FALSE;
            con_entry_flag = FALSE;
            return;
        }

        //to get here the cmd has to fail al the comparisons
        con_error_unknown_cmd();
        con_printf("\n>>");
    }

    con_arg_tolong = FALSE;
    con_entry_flag = FALSE;
    return;
}