Hallo! ich bin durch einen Arduino Due in die Arduino Welt geschlittert und muss sagen ich bin begeistert. Wenn es primär um eine Bastelei geht und nicht das coden im Vordergrund steht ist die Integration der ganzen libraries der Hammer. Ich habe mit meinen Kindern etwas gebastelt und war wirklich begeistert wie schnell man einfach 'etwas' wofür an sich Tage oder Wochen nötig wären 'benutzen' kann.... das hätte ich nicht gedacht und glaube ich hätte mich nicht so lange wehren sollen. Aber geht's janicht drum. Meine Frage ist: wenn ich für eine Hardware einen DMA / PDC Kanal benutzen möchte wie gehe ich da vor? Ich habe Datenpakete fester Länge die über Uart rein kommen und da würde ich die mit dem PDC in einen Ping Pong Buffer schreiben. Dafür müsste der uart ja zumindest etwas anders konfiguriert werden und ggf. wären Resourcen verschwendet für den normalen Input Buffer. Kann ich ein Serial.begin() machen um die Hardware generell zu konfigurieren und dann die RX/TX Interrupts ausschalten und lokal die Uart Service Routine mit der Verwaltung des PDC und der Buffer anlegen? Oder muss/sollte ich den Uart der über PDC laufen soll komplett an Arduino vorbei implementieren? Oder gibt es dafür tatsächlich auch schon eine Library? :-) Oder ist er richtige Weg einer, den ich nicht auf dem Schirm habe? schönes Wochenende und genießt die Sonne!
Sven schrieb: > Oder ist er richtige Weg einer, den ich nicht auf dem Schirm habe? Eher das. DMA für Serial I/O ist wie mit Kanonen auf Spatzen geschossen. Unter Arduino Framework wird es mit DMA sowieso nicht funktionieren bzw. implementierbar sein. D.h. man müsste alles ohne Arduino Framework schreiben und das wäre eine ganze Menge "learning curve". Meiner Erfahrung nach klappt serial I/O per Interrupt mit bis zu 921600 bit/s wunderbar (das ist das was die meisten PCs maximal können). Das reicht dicke für alles Mögliche.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.