This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Passing strings to a display routine

I have used the following code to send a display string to an RS232 port. It always worked in Keil Microvision2. Now in microvision5 it does not.

DispString (“Abcdefg\n”);

Void DispString ( unsigned char *gp) {
unsigned char i;
For (i=0; *(gp+i) != ‘\n’; i++) { putChar (*(gp+i) ); }
}

So why does the above DispString not work..??
I get no error messages.
However if I change (“Abcdefg”) to (‘Abcdefg’) I get error message …. > too many characters in character literal – extra leading characters ignored..
Can anyone explain and tell me what is the correct way in #5 (and maybe why it doesn't ?)
Thanks.
Bhal

Parents
  • "it is not true that single quotes are not the correct way to write strings in C"

    Yes, it is - please study your 'C' textbook.

    "I have single quotes (e.g. putChar('a'); )and it works"

    That's a single character - not a string.
    They are different in 'C' - again, see your 'C' textbook.

    "it is stuck @ DispString(...) line"

    That's a function call. If it's stuck there, that means it is stuck somewhere in the code inside the function.

    So use the debugger to step into the function - and see what's happening ...

    "Perhaps you can explain why I am getting the error"

    If you do as suggested above, you will see the error for yourself.
    You will learn a lot more that way.

    Debugging is a key skill - you need to learn it: www.avrfreaks.net/.../2418156

Reply
  • "it is not true that single quotes are not the correct way to write strings in C"

    Yes, it is - please study your 'C' textbook.

    "I have single quotes (e.g. putChar('a'); )and it works"

    That's a single character - not a string.
    They are different in 'C' - again, see your 'C' textbook.

    "it is stuck @ DispString(...) line"

    That's a function call. If it's stuck there, that means it is stuck somewhere in the code inside the function.

    So use the debugger to step into the function - and see what's happening ...

    "Perhaps you can explain why I am getting the error"

    If you do as suggested above, you will see the error for yourself.
    You will learn a lot more that way.

    Debugging is a key skill - you need to learn it: www.avrfreaks.net/.../2418156

Children
No data