-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: Allgemeine Fragen

  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    02.11.2005
    Beiträge
    1.607

    Allgemeine Fragen

    Anzeige

    Hi

    Normalerweise bemühe ich mich als Titel das zu verwenden was ich auch erfragen möchte. Da das alles nicht dort oben reinpasst der schlechte opener.

    Also:
    - Was sind die Unterschiede zwischen 32bit und 64bit Programmierung? Soll hier um PC wie auch embedded Systems mit ARM CPUs gehen.

    - OOP bzw Klassenorientiere Programmierung auf einen Microcontroller. Macht das sinn? Macht es sinn eine "gliedmaßen.c" zu erstellen in der die Klasse Gliedmaßen mit samt Konstruktor und Co steckt sodass ich später nur sagen muss<pre>
    Gliedmaßen Bein = new Gliedmaßen;
    Bein.bewegen_fwd(10)</pre>
    Sodass sich das Bein 10s nach vorne bewegt. Oder verbraucht diese Art der Programmierung zuviel Speicher?

    - Digitale/Analoge Servos. Der Unterschied besteht doch eigentlich nur darin, das die Digitalen einen Poti eingebaut haben und direkt an den µC angeschlossen werden können - oder? Und wie sieht die Programmierung aus - sodass ich sagen kann "Beweg dich 10° nach vorne und dann wieder -30° nach hinten"?

    - Timer - gibt es ein gescheites Tutorial zum Thema Timer? Das GCC Tutorial bei µC Reicht mir da einfach nimmer *g*

    - Was sind die geheimnisse eines ISP mit Mega8? Eigentlich sind alle das gleiche - ich könnte Theoretisch einen fertigen Schaltplan nehmen, ihn um Optokoppler am Ausgang und ihn so versehen das er Intern/Externe Spannung abkann und und verkaufen (Theoretisch)? Oder?


    Ich glaub das war alles Grüße

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    21.03.2005
    Ort
    Ulm
    Alter
    30
    Beiträge
    519

    Re: Allgemeine Fragen

    Hi

    Ich nehm mich mal ein paar Fragen an


    Zitat Zitat von BlackDevil
    - OOP bzw Klassenorientiere Programmierung auf einen Microcontroller. Macht das sinn? Macht es sinn eine "gliedmaßen.c" zu erstellen in der die Klasse Gliedmaßen mit samt Konstruktor und Co steckt sodass ich später nur sagen muss<pre>
    Gliedmaßen Bein = new Gliedmaßen;
    Bein.bewegen_fwd(10)</pre>
    Sodass sich das Bein 10s nach vorne bewegt. Oder verbraucht diese Art der Programmierung zuviel Speicher?
    Ob es Sinn macht hängt von der Anwendung ab, gehen tut es.
    Es gibt sicher Anwendungen, bei denen die Features von C++ schön zum Einsatz kommen können. Gerade Dinge wie Exception Handling.

    Andererseits braucht C++ in der Regel mehr Speicher als C. C ist für eine Hochsprache einfach extrem hardwarenah und verzichtet auf vieles bzw. lässt es dem Programmierer frei wie er seinen Code "aufplustern" will.
    C++ ist (wenn man von den Standard-C-Operatoren usw. absieht) weiter von der Zielhardware entfernt. Das geht teilweise sogar so weit, dass das Exception Handling auf den µC "draufgepackt" wird obwohl es nicht benutzt wird.



    Zitat Zitat von BlackDevil
    - Digitale/Analoge Servos. Der Unterschied besteht doch eigentlich nur darin, das die Digitalen einen Poti eingebaut haben und direkt an den µC angeschlossen werden können - oder? Und wie sieht die Programmierung aus - sodass ich sagen kann "Beweg dich 10° nach vorne und dann wieder -30° nach hinten"?
    Analoge und Digitale Servos kann man beide direkt an den µC anschließen.
    Der große Unterschied der beiden liegt darin, dass analoge Servos mit einem PWM Signal alle 20ms angesteuert werden, digitale jedoch alle 400µs!! Damit entwickeln die digitalen ein höheres Drehmoment und sie können viel schneller reagieren.

    Die Programmierung machst du mit Timern. Z.B. alle 20ms einen Puls bestimmter Länge senden. In welchen Intervall diese Länge liegen muss steht im Datenblatt des Servos.


    Zitat Zitat von BlackDevil
    - Timer - gibt es ein gescheites Tutorial zum Thema Timer? Das GCC Tutorial bei µC Reicht mir da einfach nimmer *g*
    Datenblatt
    Dort sind alle Möglichkeiten zum Einsatz der Timer aufgelistet. Einfach mal etwas Zeit nehmen und einarbeiten.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    07.03.2008
    Ort
    Nürnberg
    Alter
    34
    Beiträge
    51
    Hi!
    Also ich fand das englische Timer-Tutorial von Avrfreaks gut:
    http://www.avrfreaks.net/index.php?n...wtopic&t=50106

    Gruß

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    02.11.2005
    Beiträge
    1.607
    Zitat Zitat von error41
    Hi!
    Also ich fand das englische Timer-Tutorial von Avrfreaks gut:
    http://www.avrfreaks.net/index.php?n...eitrag&t=50106

    Gruß
    Ich schau mir das mal an, danke.

    Zu 1: Gibt es keine Klassen in C? Ich habe C++ gelernt und damit noch nicht wirklich den Plan von C (so doof das Klingt)...

    Zu 2: Das heist beide Steuer ich mit einem PWM Signal an, das war klar. Die Digitalen haben afaik 3 Leitungen: Masse, VCC und Signal - an Signal lege ich dann mein PWM Signal an, nehme ich an? Gibts dazu was zu lesen (in C)?

    Zu 3: siehe oben

    Danke soweit

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.08.2005
    Ort
    49.80248 8.59252
    Alter
    33
    Beiträge
    172
    Digitale Potis, oder mache davon können doch eine Rückmeldung geben wo sie grade positioniert sind.

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    21.03.2005
    Ort
    Ulm
    Alter
    30
    Beiträge
    519
    Zitat Zitat von BlackDevil
    Zu 1: Gibt es keine Klassen in C? Ich habe C++ gelernt und damit noch nicht wirklich den Plan von C (so doof das Klingt)...
    Nein. C ist nicht objektorientiert. Das muss es aber auch gar nicht sein. Bei PC Programmen macht objektorientiertes Denken durchaus Sinn, für die µC-Programmierung braucht man es aber eigentlich nicht. Ich hätte jetzt noch nie sagen können, dass bei einer Anwendung OOP nützlich wäre. Genauso beim Exception Handling, das ich bei µC in dem Sinne (wie es bei C++ realisiert ist) für total überflüssig halte.
    Ist ein Code richtig durchdacht und sauber programmiert kann es einfach zu keinen Ausnahmefällen kommen.

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    02.11.2005
    Beiträge
    1.607
    Exception handling ist dann Sinnvoll wenn der Benutzer eine Eingabe machen soll, irgendein Wert überlaufen könnte, eine Rechnung durchgeführt werden soll oder wenn mit Dateien gearbeitet wird. Gibt sicher noch mehr aber da macht es sinn - finde ich.

    Gut dann keine Klassen am µC . Das Timer Tutorial les ich mir heute weiter durch, das ist ja gigantisch Oo
    Danke

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    21.03.2005
    Ort
    Ulm
    Alter
    30
    Beiträge
    519
    Zitat Zitat von BlackDevil
    Exception handling ist dann Sinnvoll wenn der Benutzer eine Eingabe machen soll, irgendein Wert überlaufen könnte, eine Rechnung durchgeführt werden soll oder wenn mit Dateien gearbeitet wird. Gibt sicher noch mehr aber da macht es sinn - finde ich.

    Gut dann keine Klassen am µC . Das Timer Tutorial les ich mir heute weiter durch, das ist ja gigantisch Oo
    Danke
    Wenn der Benutzer eine solche Eingabe machen kann, dass es zu einer Ausnahme/einem Fehler kommen kann ist das einfach schlecht programmiert. Genauso bei den anderen Fällen.
    Ich sehe das eher noch als Gefahr für Anfänger. Denn anstatt sauberen und sicheren Code zu machen und solche Gefahren schon von Beginn an keine Grundlage zu geben wiegt man sich in der Sicherheit, dass das Exceptionhandling das schon alles machen wird.

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    02.11.2005
    Beiträge
    1.607
    Wenn du allerdings irgendeine Rechnung machen sollst und den Fall "Division durch Null" abfangen willst oder mit Dateien Arbeitest, da könnte eine ja Kaputt sein und sich nicht Öffnen lassen, macht das schon Sinn und dort ist der Anwender nicht zwingend Schuld, oder dein Code

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    21.03.2005
    Ort
    Ulm
    Alter
    30
    Beiträge
    519
    Zitat Zitat von BlackDevil
    Wenn du allerdings irgendeine Rechnung machen sollst und den Fall "Division durch Null" abfangen willst oder mit Dateien Arbeitest, da könnte eine ja Kaputt sein und sich nicht Öffnen lassen, macht das schon Sinn und dort ist der Anwender nicht zwingend Schuld, oder dein Code
    Naja...
    Um bei Rechnungen den Fall "Division durch Null" abzufangen reicht auch eine simple Prüfung des Nenners auf diese Bedingung. Das hat man in wenigen Codezeilen. Natürlich geht das auch mit Exception-Handling aber das finde ich eher umständlich, weil man dadurch noch einen alternativen Programmpfad einfügt usw usf...

    Mit Dateien ist das etwas anderes, da kann es wirklich nützlich sein. Aber wo arbeitet man im µC-Bereich, speziell Robotik mit Dateien? Das sind sehr wenige Anwendungen.
    Aber selbst dort kann man Exceptions relativ bequem umgehen. Es ist ja nicht so, dass wenn sich eine Datei nicht öffnen lässt (weil sie zum Beispiel gar nicht existiert) gleich dein gesamtes Programm abschmieren muss.

    Es gibt bei reinem C spezielle Funktionen zum Arbeiten mit Dateien. Und diese liefern Rückgabewerte. Stimmt also etwas nicht liefert die Funktion den entsprechenden Rückgabewert (zum Beispiel EOF) und auf diese Ausnahmen kann man dann gezielt reagieren.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •