Dear Bob,
Sorry for the interrupt, i am waiting for your valuable replay.
so kindly update me. because i am very critical position.
Thanks,
Ramesh k
Ramesh,
I'm in the midst of traveling and this is the first chance I've had to respond. Maybe I wasn't clear before, but the first 'Enter' is to set the UART parameters automatically using 'autobaud()', which will accurately set up the timers and configuration for communication using whatever terminal setup you may be using. This uses a hardware ROM routine built into the MSC1210.
I'm not sure what could be happening when you compile your program. The hex file was created using the same c code I sent, so maybe there is something in the compiler/linker of your Keil setup that is conflicting with your operation. I will not be able to look into this further until sometime later next week.
Regarding your load cell, please review the information I posted earlier that explained this in detail. You cannot excite the load cell with 12V as it sets the common mode at 6V which is greater than the AVDD supply. This violates the absolute maximum input specification of the device. It will also conduct current through the ESD diodes which is why you see the excessive current. So in short, you cannot excite the load cell with 12V and then read it directly from the MSC1210. It is impossible.
Best regards,
Bob B
Sorry for the again interrupted, i am waiting for your valuable replay.
I recompiled the code with Keil, and it works fine. I think that maybe you have something set wrong in Keil. I've attached a zip file that contains the project files for both Keil and Rasionance. Perhaps you can identify a setting that is different than yours. At this point I'm not sure what more I can do for you in providing further help in getting your code to work.
0172.MSC_Example.zip
MSC_5F00_Example.zip this source code working fine, But you have used UART 0 using printf statment , i want transimite through polling method using SBUF0,
like this SBUF0='A'; while(TI_0 == 0); TI_0 =0; poling method transmit cant work. please update me.
Thanks and regards,
Your original problem stated that the uart, timer and ADC could not operate at the same time. I demonstrated that this is possible. I also told you that I do not have a full version of the compiler, so I cannot do extensive code operations. Built in functions, like fprint() are available to me as they are in the standard library.
As far as building routines that function outside of the interrupt, and yet use interrupt flags only confuses operation. So in this case you cannot use polling and interrupt functions at the same time. Turning the uart0 interrupt off (bit 4 of the IE register) would be appropriate.
Remember that when you turn off internal interrupt operations and use polling, you have eliminated the priority interrupt system. This means you may have to disable lower priority interrupts when higher priority functions are in operation otherwise interrupt flags may be missed, misinterpreted, or ignored.
This may have been your original problem. It is up to you the programmer to decide how your system is to function. I demonstrated that all three operations can work simultaneously. If you want to devise your own method, that is fine. However, I do not have the software to write advanced code of the nature and operation you desire. You will have to debug your system and discover where your software is failing.
interrupt flags may be missed, misinterpreted, or ignored.
yes, your above point is correct, because i have used SBUF0='A'; While(TI_0==0); TI_0 =0; TI_0 flag is cant set properly, after i remove while condition and replace delay
its works fine. SBUF0='A'; delay(50); TI_0 =0; this is not right way, so please update me how we can fix it.
Sometimes actions within a comparison can be misinterpreted. The TI_0 flag should get set once the buffer has been written. Try a different comparison with the while to see if the action completes. For example:
while(!TI_0);
I had solve all the software bugs, Very very Thanks Dear Bob, i have enable axillary interrupt AIE =0x20 that is affected,
so Thanks for spend your valuable time. i have solved software bug with your help. still i have problem for load cell read adc its hardware problem mV and current.
already i have posted last mail so please give solution for me. i am waiting for your reply.
I already answered your analog questions in earlier posts. I suggest that if I have not answered a specific question you start a new post with just the analog questions so we keep specific topics together.
To quickly address once again, you cannot exceed the common mode voltage specification for the analog inputs. The DC voltage from the analog + input and the - input cannot exceed the AVDD supply voltage. This input can be measured from each input to ground with your load cell connected. There are some further restrictions as to the limit of this range (may be less than AVDD) when gain is used and the internal buffer is also used.
For example, with 12V excitation, the balanced bridge state will be 1/2 the excitation voltage (6V). 6V will exceed the 5V AVDD supply, and will draw excessive current (through ESD protection diodes) and can damage the MSC1210.
The solution is to lower the excitation voltage, or use the circuit I gave in the earlier post.
Best regards,Bob B
I am trying to SD CARD interface in MSC1210 for data logger, SD CARD is SPI Protocol , can you help me?, spi init and sample code for SPI and SD CARD
interfacing in MSC1210. please send sd card sample code. I am waiting for your valuable reply.
Thanks and Regards,