HI my friends.
i practice a SD card program.
i connected to pic18F4680 and sd card.
but pragram run to initialise area.
it stop not continue run.
i check circult correct. check input voltage correct.
i use hspul mode. let systems can run on 32Mhz.
so can help me debug.
where is debug.
thanks u very much.
AS follows:
// universal variables
unsigned int px, k; // universal for loops and other stuff
// Variables for MMC routines
unsigned char data[512]; // Buffer for MMC sector reading/writing
unsigned char data_for_registers[16]; // buffer for CID and CSD registers
char filename[]="testok.txt";
// RS232 communication variables
unsigned char received_character;
unsigned long sector_address;
unsigned char first_byte, second_byte, third_byte, fourth_byte,ret_states;
unsigned char serial_buffer[2];
unsigned char serial_pointer;
unsigned int i;
unsigned short L,j;
void printhex(unsigned char i) {
unsigned char hi,lo;
hi = i & 0xF0; // High nibble
hi = hi >> 4;
hi = hi + '0';
if (hi>'9') hi = hi + 7;
lo = (i & 0x0F) + '0'; // Low nibble
if (lo>'9') lo=lo+7;
USART_Write(hi);
USART_Write(lo);
}
void main() {
PORTC = 0;
USART_init(19200);
TRISC = 0b11010011;
while(1)
{
if (USART_Data_Ready())
{
USART_Write('P'); // If PIC present report
USART_Write('I'); //
USART_Write('C'); //
USART_Write('-'); //
USART_Write('S'); //
USART_Write('t'); //
USART_Write('a'); //
USART_Write('r'); //
USART_Write('t'); //
USART_Write('e'); //
USART_Write('d'); //
USART_Write(13); //
USART_Write(10); //
// Beffore all, we must initialise a MMC card
Spi_Init_Advanced(MASTER_OSC_DIV16, DATA_SAMPLE_MIDDLE, CLK_IDLE_LOW, LOW_2_HIGH);
i = MMC_Init(&PORTC,2);
if(i == 0)
{
USART_Write('M'); // If MMC present report
USART_Write('M');
USART_Write('C');
USART_Write('I');
USART_Write('n');
USART_Write('i');
USART_Write('t');
USART_Write('-');
USART_Write('O');
USART_Write('K');
USART_Write(13);
USART_Write(10);
}
if(i)
{
USART_Write('M'); // If error report
USART_Write('M');
USART_Write('C');
USART_Write('I');
USART_Write('n');
USART_Write('i');
USART_Write('t');
USART_Write('-');
USART_Write('E');
USART_Write('r');
USART_Write('r');
USART_Write(13);
USART_Write(10);
}
if(ret_states)
{
Usart_Write('U');
Usart_Write('i');
Usart_Write('F');
Usart_Write('i');
Usart_Write('l');
Usart_Write('e');
Usart_Write('-');
Usart_Write('C');
Usart_Write('r');
Usart_Write('E');
Usart_Write('a');
Usart_Write('t');
usart_Write('e');
USART_Write(13);
USART_Write(10);
}
for(i=0; i<=511; i++) data = 'E'; // Fill MMC buffer with same characters
i = MMC_Write_Sector(55, data);
if(i == 0)
{
Usart_Write('W');
Usart_Write('r');
Usart_Write('i');
Usart_Write('t');
Usart_Write('e');
Usart_Write('-');
Usart_Write('O');
Usart_Write('K');
}
else // if there are errors.....
{
Usart_Write('W');
Usart_Write('r');
Usart_Write('i');
Usart_Write('t');
Usart_Write('e');
Usart_Write('-');
Usart_Write('E');
Usart_Write('r');
Usart_Write('r');
}
USART_Write(13);
USART_Write(10);
// Reading of CID and CSD register on MMC card.....
i = MMC_Read_CID(data_for_registers);
if(i == 0)
{
for(k=0; k<=15; k++)
{
printhex(data_for_registers[k]);
if(k!=15) USART_Write('-');
}
USART_Write(13);
}
else
{
Usart_Write('C');
Usart_Write('I');
Usart_Write('D');
Usart_Write('-');
Usart_Write('E');
Usart_Write('r');
Usart_Write('r');
}
i == MMC_Read_CSD(data_for_registers);
if(i == 0)
{
for(k=0; k<=15; k++)
{
printhex(data_for_registers[k]);
if(k!=15) USART_Write('-');
}
USART_Write(13);
USART_Write(10);
}
else
{
Usart_Write('C');
Usart_Write('S');
Usart_Write('D');
Usart_Write('-');
Usart_Write('E');
Usart_Write('r');
Usart_Write('r');
}
// Variables initialisation
serial_pointer = 0;
// MAIN loop
if (USART_Data_Ready())
{
serial_buffer[serial_pointer] = USART_Read(); // Get the received character
serial_pointer++;
if(serial_pointer>1)
{
serial_pointer = 0;
// Collecting four bytes of the address!
if(serial_buffer[0] == 'S') first_byte = serial_buffer[1];
if(serial_buffer[0] == 's') second_byte = serial_buffer[1];
if(serial_buffer[0] == 'E') third_byte = serial_buffer[1];
if(serial_buffer[0] == 'e') fourth_byte = serial_buffer[1];
if(serial_buffer[0] == 'R') // Command: Read memmory
{
if(serial_buffer[1] == 'r')
{
sector_address = ((long)first_byte << 24) + ((long)second_byte << 16) +
((long)third_byte << + ((long)fourth_byte);
i = MMC_Read_Sector(sector_address,data);
//USART_Write(0x30 + i); //
if(i == 0)
{
for(k=0; k<512; k++)
{ //USART_Write(data[k]); // send 512 bytes from MMC card via usart
printhex(data[k]);
USART_Write(' ');
if(((k+1) % 16)==0)
{
USART_Write(' ');
//printhex(k);
for(px=(k-15); px<=k; px++)
{
if((data[px]>33) && (data[px]<126))
{
USART_Write(data[px]);
}
else
{
USART_Write('.');
}
}
USART_Write(13);
}
}
USART_Write(13);
USART_Write(10);
}
else
{
USART_Write('R'); // If Error
USART_Write('d');
USART_Write('-');
USART_Write('E');
USART_Write('r');
USART_Write('r');
USART_Write(13);
USART_Write(10);
}
}
}
if(serial_buffer[0] == 'W') // Command: Write
{
if(serial_buffer[1] == 'w')
{
// Generating 32-bit address of the sector out of four received bytes
sector_address = ((long)first_byte << 24) + ((long)second_byte << 16) +
((long)third_byte << + ((long)fourth_byte);
for(k=0; k<512; k++) data[k] = received_character;// fill RAM baffer
i = MMC_Write_Sector(sector_address, data); // write buffer tou MMC
if(i != 0)
{
USART_Write('W'); // If Error
USART_Write('r');
USART_Write('-');
USART_Write('E');
USART_Write('r');
USART_Write('r');
USART_Write(13);
USART_Write(10);
}
else
{
USART_Write('W'); // If OK
USART_Write('r');
USART_Write('-');
USART_Write('O');
USART_Write('K');
USART_Write(13);
USART_Write(10);
}
}
}
if(serial_buffer[0] == 'C')
{
received_character = serial_buffer[1];
}
}
}
}
}
}
pic18f4680 USE SDquestion?
General discussion on mikroC.
Author
Message
Re: pic18f4680 USE SDquestion?
#2 Post by john0426 » 13 May 2011 18:08
HELP me.help me.
have anybody can teach me.
i program show a message.
but i dont understand where bug.
as follow :
Sent: 1
Received: P
Received: IC-Started
MMCIn
Received: it-Err
Write-Err
Received: 0
Received: 0-00-00-00-00-00-00-00-00-00-00-00-00-00-0
Received: 0-00
Received: 0
Received: 0-00-00-00-00-00-00-00-00-00-00-00-00-
Received: 00-00-00
Disconnected from COM1
have anybody can teach me.
i program show a message.
but i dont understand where bug.
as follow :
Sent: 1
Received: P
Received: IC-Started
MMCIn
Received: it-Err
Write-Err
Received: 0
Received: 0-00-00-00-00-00-00-00-00-00-00-00-00-00-0
Received: 0-00
Received: 0
Received: 0-00-00-00-00-00-00-00-00-00-00-00-00-
Received: 00-00-00
Disconnected from COM1
Jump to
- NECTO Studio
- ↳ IDE
- ↳ IDE General
- ↳ IDE Beta Testing
- ↳ IDE Wish List
- ↳ ARM AI Compilers
- ↳ mikroC AI for ARM
- ↳ mikroC AI for ARM General
- ↳ mikroC AI for ARM Beta Testing
- ↳ mikroC AI for ARM Wish List
- ↳ PIC AI compilers
- ↳ mikroC AI for PIC
- ↳ mikroC AI for PIC General
- ↳ mikroC AI for PIC Beta Testing
- ↳ mikroC AI for PIC Wish List
- ↳ PIC32 AI Compilers
- ↳ mikroC AI for PIC32
- ↳ mikroC AI for PIC32 General
- ↳ mikroC AI for PIC32 Beta Testing
- ↳ mikroC AI for PIC32 Wish List
- ↳ dsPIC AI Compilers
- ↳ mikroC AI for dsPIC
- ↳ mikroC AI for dsPIC General
- ↳ mikroC AI for dsPIC Beta Testing
- ↳ mikroC AI for dsPIC Wish List
- ↳ AVR AI Compilers
- ↳ mikroC AI for AVR
- ↳ mikroC AI for AVR General
- ↳ mikroC AI for AVR Beta Testing
- ↳ mikroC AI for AVR Wish List
- ↳ Additional Software
- ↳ Visual TFT AI
- ↳ Visual TFT AI General
- ↳ Visual TFT AI Beta Testing
- ↳ Visual TFT AI Wish List
- PRO Compilers
- ↳ PIC PRO Compilers
- ↳ PIC Compilers General
- ↳ mikroC PRO for PIC
- ↳ mikroC PRO for PIC General
- ↳ mikroC PRO for PIC Beta Testing
- ↳ mikroC PRO for PIC Wish List
- ↳ mikroBasic PRO compiler for PIC
- ↳ mikroBasic PRO for PIC General
- ↳ mikroBasic PRO for PIC Beta Testing
- ↳ mikroBasic PRO for PIC Wish List
- ↳ mikroPascal PRO for PIC
- ↳ mikroPascal PRO for PIC General
- ↳ mikroPascal PRO for PIC Beta Testing
- ↳ mikroPascal PRO for PIC Wish List
- ↳ dsPIC PRO Compilers
- ↳ dsPIC Compilers General
- ↳ mikroC PRO for dsPIC30/33 and PIC24
- ↳ mikroC PRO for dsPIC30/33 and PIC24 General
- ↳ mikroC PRO for dsPIC30/33 and PIC24 Beta Testing
- ↳ mikroC PRO for dsPIC30/33 and PIC24 Wish List
- ↳ mikroBasic PRO for dsPIC30/33 and PIC24
- ↳ mikroBasic PRO for dsPIC30/33 and PIC24 General
- ↳ mikroBasic PRO for dsPIC30/33 and PIC24 Beta Testing
- ↳ mikroBasic PRO for dsPIC30/33 and PIC24 Wish List
- ↳ mikroPascal PRO for dsPIC30/33 and PIC24
- ↳ mikroPascal PRO for dsPIC30/33 and PIC24 General
- ↳ mikroPascal PRO for dsPIC30/33 and PIC24 Beta Testing
- ↳ mikroPascal PRO for dsPIC30/33 and PIC24 Wish List
- ↳ PIC32 PRO Compilers
- ↳ PIC32 Compilers General
- ↳ mikroC PRO for PIC32
- ↳ mikroC PRO for PIC32 General
- ↳ mikroC PRO for PIC32 Beta Testing
- ↳ mikroC PRO for PIC32 Wish List
- ↳ mikroBasic PRO for PIC32
- ↳ mikroBasic PRO for PIC32 General
- ↳ mikroBasic PRO for PIC32 Beta Testing
- ↳ mikroBasic PRO for PIC32 Wish List
- ↳ mikroPascal PRO for PIC32
- ↳ mikroPascal PRO for PIC32 General
- ↳ mikroPascal PRO for PIC32 Beta Testing
- ↳ mikroPascal PRO for PIC32 Wish List
- ↳ AVR PRO Compilers
- ↳ AVR Compilers General
- ↳ mikroC PRO for AVR
- ↳ mikroC PRO for AVR General
- ↳ mikroC PRO for AVR Beta Testing
- ↳ mikroC PRO for AVR Wish List
- ↳ mikroBasic PRO compiler for AVR
- ↳ mikroBasic PRO for AVR General
- ↳ mikroBasic PRO for AVR Beta Testing
- ↳ mikroBasic PRO for AVR Wish List
- ↳ mikroPascal PRO for AVR
- ↳ mikroPascal PRO for AVR General
- ↳ mikroPascal PRO for AVR Beta Testing
- ↳ mikroPascal PRO for AVR Wish List
- ↳ FT90x PRO Compilers
- ↳ FT90x Compilers General
- ↳ mikroC PRO for FT90x
- ↳ mikroC PRO for FT90x General
- ↳ mikroC PRO for FT90x Beta Testing
- ↳ mikroC PRO for FT90x Wish List
- ↳ mikroBasic PRO compiler for FT90x
- ↳ mikroBasic PRO for FT90x General
- ↳ mikroBasic PRO for FT90x Beta Testing
- ↳ mikroBasic PRO for FT90x Wish List
- ↳ mikroPascal PRO for FT90x
- ↳ mikroPascal PRO for FT90x General
- ↳ mikroPascal PRO for FT90x Beta Testing
- ↳ mikroPascal PRO for FT90x Wish List
- ↳ 8051 PRO Compilers
- ↳ 8051 Compilers General
- ↳ mikroC PRO for 8051
- ↳ mikroC PRO for 8051 General
- ↳ mikroC PRO for 8051 Beta Testing
- ↳ mikroC PRO for 8051 Wish List
- ↳ mikroBasic PRO compiler for 8051
- ↳ mikroBasic PRO for 8051 General
- ↳ mikroBasic PRO for 8051 Beta Testing
- ↳ mikroBasic PRO for 8051 Wish List
- ↳ mikroPascal PRO for 8051
- ↳ mikroPascal PRO for 8051 General
- ↳ mikroPascal PRO for 8051 Beta Testing
- ↳ mikroPascal PRO for 8051 Wish List
- ↳ ARM PRO Compilers
- ↳ ARM Compilers General
- ↳ mikroC PRO for ARM
- ↳ mikroC PRO for ARM General
- ↳ mikroC PRO for ARM Beta Testing
- ↳ mikroC PRO for ARM Wish List
- ↳ mikroBasic PRO for ARM
- ↳ mikroBasic PRO for ARM General
- ↳ mikroBasic PRO for ARM Beta Testing
- ↳ mikroBasic PRO for ARM Wish List
- ↳ mikroPascal PRO for ARM
- ↳ mikroPascal PRO for ARM General
- ↳ mikroPascal PRO for ARM Beta Testing
- ↳ mikroPascal PRO for ARM Wish List
- ↳ Older versions of Compilers
- ↳ Older versions of mikroC Compilers
- ↳ mikroC for PIC
- ↳ mikroC General
- ↳ mikroC Beta Testing
- ↳ mikroC Wish List
- ↳ mikroC for dsPIC30/33 and PIC24
- ↳ mikroC for dsPIC30/33 and PIC24 General
- ↳ mikroC for dsPIC30/33 and PIC24 Beta Testing
- ↳ mikroC for dsPIC30/33 and PIC24 Wish List
- ↳ RSC-4x mikroC
- ↳ RSC-4x mikroC General
- ↳ RSC-4x mikroC Wish List
- ↳ mikroC Beta testing
- ↳ Older versions of mikroBasic Compilers
- ↳ mikroBasic compiler for PIC
- ↳ mikroBasic General
- ↳ mikroBasic Beta Testing
- ↳ mikroBasic Wish List
- ↳ mikroBasic compiler for dsPIC30/33 and PIC24
- ↳ mikroBasic for dsPIC30/33 and PIC24 General
- ↳ mikroBasic for dsPIC30/33 and PIC24 Beta Testing
- ↳ mikroBasic for dsPIC30/33 and PIC24 Wish List
- ↳ mikroBasic for dsPIC30/33 and PIC24 Bug List
- ↳ Obsolete Project: mikroBasic compiler for AVR
- ↳ mikroBasic for AVR General
- ↳ mikroBasic for AVR Wish List
- ↳ mikroBasic Beta testing
- ↳ Older versions of mikroPascal Compilers
- ↳ mikroPascal compiler for PIC
- ↳ mikroPascal FAQ
- ↳ mikroPascal General
- ↳ mikroPascal Beta Testing
- ↳ mikroPascal Wish List
- ↳ mikroPascal Bug List
- ↳ mikroPascal compiler for dsPIC30/33 and PIC24
- ↳ mikroPascal for dsPIC30/33 and PIC24 General
- ↳ mikroPascal for dsPIC30/33 and PIC24 Beta Testing
- ↳ mikroPascal for dsPIC30/33 and PIC24 Wish List
- ↳ mikroPascal for dsPIC30/33 and PIC24 Bug List
- ↳ Obsolete Project: mikroPascal compiler for AVR
- ↳ mikroPascal for AVR General
- ↳ mikroPascal for AVR Wish List
- ↳ mikroPascal Beta testing
- ↳ Library Development Discussion
- ↳ Code Requests
- Additional Software
- ↳ Visual TFT Software
- ↳ Visual TFT General
- ↳ Visual TFT Beta Testing
- ↳ Visual TFT Wish List
- ↳ Visual GLCD Software
- ↳ Visual GLCD General
- ↳ Visual GLCD Beta Testing
- ↳ Visual GLCD Wish List
- ↳ Package Manager Software
- ↳ Package Manager General
- ↳ Package Manager Beta Testing
- ↳ Package Manager Wishlist
- ↳ GLCD Font Creator Software
- ↳ SpeakUp Software
- ↳ Timer Calculator
- ↳ CAN Calculator
- ↳ mikroBootloader
- Hardware
- ↳ Development Boards
- ↳ CODEGRIP programmer and debugger
- ↳ Mikromedia
- ↳ mikroProg™ programmer and debugger
- ↳ Development Boards Wishlist
- ↳ Review
- ↳ Click Boards release
- ↳ Hexiwear
- Website & Forums
- ↳ Libstock Discussion
- ↳ Product Announcements
- ↳ Website & Forums General Discussion
- ↳ Website & Forums Wishlist
- ↳ User Projects