Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
06/26/09 15:25
Read: times


 
#166499 - Could you please suggest?
Responding to: ???'s previous message
Do not call printf from any ISR.

printf is a very powerful function; which means that it is very large - exactly what you do not want in an ISR!

Also, Keil's standard putchar implementation means that printf does not return until the last character has been transmitted!

And printf is not reentrant, so it is highly likely that calls in an ISR will corrupt calls elsewhere in the program - which looks like exactly what you are seeing!

So, one more time: Do not call printf from any ISR. Ever.

List of 44 messages in thread
TopicAuthorDate
CMP-10 thermal printer & 8051            01/01/70 00:00      
   Printer settings            01/01/70 00:00      
   Some hints/advice..            01/01/70 00:00      
   I sent commands like "BEL", or "ESC RS"            01/01/70 00:00      
      ASCII table            01/01/70 00:00      
      HyperTerminal & ASCII code            01/01/70 00:00      
         Would it be realistic....            01/01/70 00:00      
         Not text,            01/01/70 00:00      
            Not text,            01/01/70 00:00      
               Spend more time with the ASCII table.            01/01/70 00:00      
                  Still fail to test the printer            01/01/70 00:00      
                     The printer is working            01/01/70 00:00      
                     ASCII char on HyperTerminal            01/01/70 00:00      
                        Re: ASCII char on HyperTerminal            01/01/70 00:00      
                     ASCII char on HyperTerminal            01/01/70 00:00      
                        Is that guaranteed?            01/01/70 00:00      
                           I use it that way            01/01/70 00:00      
   XOn/XOff set on MCU side            01/01/70 00:00      
      You have to do it yourself            01/01/70 00:00      
         Re:You have to do it yourself            01/01/70 00:00      
            Intern? [edited]            01/01/70 00:00      
   HyperTerminal and microcontroller - please help!            01/01/70 00:00      
      HyperTerminal and microcontroller - please help!            01/01/70 00:00      
         May be I need to use cross over serial cable            01/01/70 00:00      
   Use printf to output to UART, but receive incorrect data            01/01/70 00:00      
      Re: Use printf to output to UART, but receive incorrect dat            01/01/70 00:00      
         printf only can output value from 256 to 32767 correctly            01/01/70 00:00      
            Hasn't Maarten already explained this?            01/01/70 00:00      
               Re: Hasn't Maarten already explained this?            01/01/70 00:00      
                  Show it!            01/01/70 00:00      
                     Re: Show it            01/01/70 00:00      
      use a cast            01/01/70 00:00      
         or RTFM            01/01/70 00:00      
            Re: RTFM            01/01/70 00:00      
            I found the solution. Thanks            01/01/70 00:00      
               Direct Memory?            01/01/70 00:00      
                  Re: Direct memory            01/01/70 00:00      
                     Definitely a BAD Idea!            01/01/70 00:00      
                        Re:Definitely a BAD Idea!            01/01/70 00:00      
                           Could you please suggest?            01/01/70 00:00      
                              Re: Do not call from ISR            01/01/70 00:00      
                                 I didn't say that            01/01/70 00:00      
                                    Thanks!            01/01/70 00:00      
         Re: use a cast            01/01/70 00:00      

Back to Subject List