Arduino:
Att använda en debugger

Hur man gör:

Med Arduino IDE kan du använda Serial-utskrifter för att debugga, men det är lite som att använda en ficklampa för att utforska en grotta. För riktig felsökning kanske du vill höja din nivå med något som Atmel-ICE-debuggern som integreras med Arduino-miljön. Här är ett smakprov på pseudo-debuggning med Serial:

void setup() {
  Serial.begin(9600);
}
void loop() {
  int sensorValue = analogRead(A0);
  Serial.print("Sensorvärde: ");
  Serial.println(sensorValue);
  // Tänk dig att du förväntar dig 512 här men får 0.
  // Dags att inspektera sensoranslutningen
  delay(1000); // Vänta en sekund innan du läser av igen
}

Kör detta med Serial Monitor öppen, och du kommer att se vad din sensor spottar ut i realtid.

Djupdykning

Innan debuggers var det ett värld av utskriftsatser – du kunde bara gissa vad som hände genom att skriva ut allt. Debugging med utskrifter är fortfarande vanligt, speciellt i enklare miljöer eller på begränsad hårdvara som Arduino.

Alternativ till in-krets-emulatorer som Atmel-ICE inkluderar mjukvarufelsökningsverktyg som avr-gdb. Du kan para ihop den med avarice för att skapa en bro mellan GDB och din hårdvara, vilket är superpraktiskt för mer avancerad felsökning direkt på chipet.

Med en debugger kan du sätta brytpunkter för att stoppa utförandet vid vissa punkter. Du kan stega igenom din kod rad för rad, inspektera minne, register och variabler. Detta låter dig hitta problem istället för att chansa i mörkret. När du implementerar en debugger, se till att din miljö är korrekt inställd - missmatchade versioner eller dåligt konfigurerade verktyg kan leda till frustration.

Se också

Redo att dyka djupare? Utforska dessa: