Hi.
I've already asked this question once. however there it was together with another question. and people only ended up answering the first one. shame on me I guess, should probably have kept them separate. but anyways. I have an issues with my Arduino.
its not resetting properly it seems. the only way to restart it now is to reload the code from the IDE. if I try any other way. be that in software, pushing the reset button on the board itself. or disconnecting it from the power supply and letting it power down totally. it just freezes.
do I need to do something for the reset to work? it behaves this way with all code. even the example ASCII table print that comes with the IDE.
my Arduino is and Arduino Nano 33 IOT. that I bought from RS components.
You will have to give a better explanation of how a proper reset should operate and how the reset is operating now. What is the difference and how do you determine the reset is not proper?
How do you know it is not resetting properly? What are the symptoms. If there is any hardware connected post a schematic, not a frizzy picture. Posting your code would help. But first load one of the blink sketches, no hardware connected, and see if it works ok including using the reset button. That will help narrow it down. Freezes is saying what? How are you powering it?
This is a bit of a stab in the dark, but what do you see when you enable verbose output during upload (in the preferences menu) and upload your sketch?
You will have to give a better explanation of how a proper reset should operate and how the reset is operating now. What is the difference and how do you determine the reset is not proper?
sure, I've used Arduino's before. and had no problems with them. the expected behavior I'm looking for and that i had back on other Arduino's is that when i press the reset button. the Arduino will reset itself. and then proceed to run whatever code is on it again. same should presumably apply to software initiated restart, which from what i understand just sets the program counter to 0. forcing it to go through the boot process again. although i have never used it before now. and a reboot caused by powerloss (A-I the board was disconnected from the PC)
what happens now with all of these is that the board just... locks up. it doesn't do anything. its not accepting inputs or even appears to try to connect to the serial monitor. it doesn't blink. and infact, since the board grows cold compared to when it is actually running my program. it doesn't appear that the CPU is doing anything at all.
its just the board itself. there are no components connected to it and the board is powered though the USB port on the board. its only connected device is the PC I'm programming it with. which it talks to using the serial monitor. the code works when loaded from the IDE. but not after the reset button is pressed. and seems to apply to all code. including as mentioned. the ASCII table dump example that's in the IDE.
That might not apply to your processor; not all processors start executing code from address 0. You will have to consult the datasheet of the processor to figure that out.
In your other topic, I advised you to use while(!Serial) for the other problem that you had. That will block your processor till the communication channel is open; so running without being connected to a PC and terminal program open will make it look like your Arduino is hanging.
What happens when you double tap the reset button? A number of boards with native USB use that to invoke the upload functionality of the bootloader.
Lastly, you can replace the double tap by opening and closing e.g. serial monitor with a baudrate of 1200 baud; that is badically the same as what the IDE does when you upload.
very strange. i hadn't had the change to test the blink example before now. but it seems to work. the LED blinks even after a reset. however the ascii table example does not run again after a reset. could there be something with the USB controller?