Обнулить Arduino
- Войдите на сайт для отправки комментариев
Вс, 26/01/2014 - 14:28
Ребят, такая проблема.
В поисках методов уменьшения внутренних шумов АЦП наткнулся на такой код:
#include < avr/sleep.h > void setup() { Serial.begin(9600); } void loop() { int reading; reading = analogNoiseReducedRead(0); Serial.println(); delay(500); } int analogNoiseReducedRead(int pinNumber) { int reading; ADCSRA |= _BV( ADIE ); //Set ADC interrupt set_sleep_mode(SLEEP_MODE_ADC); //Set sleep mode reading = analogRead(pinNumber); //Start reading sleep_enable(); //Enable sleep do { //Loop until reading is completed sei(); //Enable interrupts sleep_mode(); //Go to sleep cli(); //Disable interrupts } while(((ADCSRA & (1 << ADSC) ) != 0)); //Loop if the interrupt that woke the cpu was something other than the ADC finishing the reading sleep_disable(); //Disable sleep ADCSRA &= ~ _BV( ADIE ); //Clear ADC interupt sei(); //Enable interrupts return(reading); }
Записал на Freaduino Micro V1.2 (ATmega 32u4) (leonardo) и все, плата перестала отвечать. В диспечере устройств пропал COM порт для платы и она (плата) перешла в Unknown Device. Попытки отключать плату и замыкать пин Reset никакого результата не дают. При перезагрузке появляется Arduino leonardo bootloader, затем плата уходит в Unknown Device. Помогите откачать и вернуть к жизни устройство :).
Решил проблему путем перешпрошивки bootloader'а при помощи второй ардуины (ArduinoISP).
конечно перестанет отвечать, у вас чтение данных незацикленно было в loop(). У вас скорей всего 1 раз прочитало, а потом по выходу из loop, крутилось в заглушке, не на что не отвечая. Да и в порт нифига не выводили.
Надо было хоть так сделать