We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi! Guys! I want to design a delay function that can have any desire delay value input in.ex.delay(20)-- 20ms of delay , delay(1000)- 1s of delay. I got problem when I wanted to convert the value of the integer to hexadecimal value. In addition, the hexadecimal value intialize into TH0 and TL0. Give me your advice. Thank You!
What I mean problem? I don't know how to convert from integer to hexadecimal using C.
"I don't know how to convert from integer to hexadecimal using C." You don't need to! As far as 'C' is concerned, it's just a 16-bit number! It's up to you whether you want to write it in decimal as "1000" or in hex as "0x03E8" or in octal as "01750" - the internal storage within the processor is unaffected. I think your real question is, how to separate the two bytes of a 16-bit number? This can be done with shifts & masks, with pointers, or with a union. Think about it, and try a 'Search' - there's plenty of examples here already!
I want the user to input the value of their desire delay value. They don't need to convert to hexadecimal value. The function will do it. And i knew about the "0X"or "Ox"
Your problem is how to convert the user input into a hex-number. I think the scanf-function will do this.
Your problem now seems to be multiple personalities: you started as Zidane Fisherman; now you're dawson yeo...! Or is this a team effort?
"Your problem is how to convert the user input into a hex-number." No. The problem is how to convert the user input into a number. Hex is irellevant! He just needs to convert from the user input format (keypresses? thumbwheel switches? ASCII strings from the UART? who knows - he/they didn't say!) to the corresponding int (or whatever) value that his/their 'C' can use in its calculations.