Forum: Mikrocontroller und Digitale Elektronik Hilfe beim C Programmieren für ATMega32


von Micro123 (Gast)


Lesenswert?

Hallo,

ich habe leider nicht viel Ahnung vom C Programmieren und brauche ganz
dringend Hilfe für ein Projekt. Ich muss ein kleines Programm in C für
den ATmega32 schreiben. Es würde für jemanden Erfahrenen vielleicht 2-3
Std dauern. Kann mir das jemand schreiben oder helfen?

Danke für Eure Hilfe!

M

: Verschoben durch Moderator
von Matthias L. (Gast)


Lesenswert?

Was heisst "Du musst"?

Wer zwingt Dich dazu?

von David M. (milo-d)


Lesenswert?

Micro123 schrieb:
> Hallo,
>
> ich habe leider nicht viel Ahnung vom C Programmieren und brauche ganz
> dringend Hilfe für ein Projekt. Ich muss ein kleines Programm in C für
> den ATmega32 schreiben. Es würde für jemanden Erfahrenen vielleicht 2-3
> Std dauern. Kann mir das jemand schreiben oder helfen?
>
> Danke für Eure Hilfe!
>
> M

Hi,

was ist denn die konkrete Aufgabe ?

von Micro123 (Gast)


Lesenswert?

Mein Lehrer bzw. fehlen mir nur noch mehr ein paar Punkte zum 
Durchkommen und Microcontroller liegt mir so gar nicht.

von M. K. (sylaina)


Lesenswert?

Micro123 schrieb:
> Mein Lehrer bzw. fehlen mir nur noch mehr ein paar Punkte zum
> Durchkommen und Microcontroller liegt mir so gar nicht.

Wie wäre es denn das Ganze mal zu lernen. Das ist doch die Crux an der 
Aufgabe, die dein Lehrer dir gestellt hat: Er möchte, dass DU es lernst, 
nicht wir ;)

von Charly B. (charly)


Lesenswert?

ist schon sonderbar, keine ahnung haben aber wissen das es
nur 2-3 Std. dauert es zu schreiben, meine berufsempfehlung:
Hellseher

von Horst V. (hoschti)


Lesenswert?

Micro123 schrieb:
> Mein Lehrer bzw. fehlen mir nur noch mehr ein paar Punkte zum
> Durchkommen und Microcontroller liegt mir so gar nicht.

Deinem Lehrer fehlen sicher keine Punkte, sondern Dir!

Versuchs doch einfach mal. Wenn's dann konkrete Fragen gibt, hilft Dir 
hier sicher jeder, die richtige Spur zu finden. Aber einfach Deine 
Hausaufgaben machen, dazu hat hier keiner so richtig Lust. Und letztlich 
hilf es Dir auch nicht weiter. Spätestens bei der nächsten Aufgabe 
stehst Du wieder im Wald.

Also fang doch mal an!

von hans (Gast)


Lesenswert?

Selbst wenn dir jemand das Programm schreiben würde, wäre dir nicht 
geholfen.
Ich habe die Erfahrung gemacht das Lehrer gerne Rückfragen zum Programm 
stellen um sicher zu gehen das der Schüles es auch selbst geschrieben; 
bzw verstanden hat.

von Elter (Gast)


Lesenswert?

Horst V. schrieb:
> Also fang doch mal an!

Micro123 schrieb:
> und Microcontroller liegt mir so gar nicht.

Also du hast null Bock, würde meine Tochter sagen. Wahrscheinlich
auf wenig bis gar nichts.

von Thomas (kosmos)


Lesenswert?

Kleiner Tip: verrate den Leuten die dir ggf. helfen wollen, was dieses 
Programm den können soll.

von Micro123 (Gast)


Lesenswert?

Es gibt keine nächste Aufgabe mehr ;)
Ich bin von einem ganz anderen Gebiet eigentlich und werde es nie wieder 
mehr brauchen. Ich kann mt Programmieren leider so gar nichts anfangen, 
aber es wird leider verlangt.
Ich trau mich hier nicht mehr reinzuschreiben, weil ich möchte keine 
Probleme bekommen.

von David M. (milo-d)


Lesenswert?

Micro123 schrieb:
> Es gibt keine nächste Aufgabe mehr ;)
> Ich bin von einem ganz anderen Gebiet eigentlich und werde es nie wieder
> mehr brauchen. Ich kann mt Programmieren leider so gar nichts anfangen,
> aber es wird leider verlangt.
> Ich trau mich hier nicht mehr reinzuschreiben, weil ich möchte keine
> Probleme bekommen.

Bin auch der Meinung, dass das keinen Sinn macht, wenn man es später 
nicht mehr benötigt. Wie gesagt, schick einfach die Aufgabe hier rein 
und dann kann man dir sicherlich Hilfestellung bieten.

von Frank S. (_frank_s_)


Lesenswert?

Im Beitrag
Beitrag "Hilfe bei meinem Programm in C"
hast du noch Geld angeboten, weswegen der Faden gesperrt wurde.

von Micro123 (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe euch mal die Aufgabe hier hochgeladen.

Also ich müsste hier ein Kommandozeilenprogramm am Raspi schreiben, wo 
dann was passiert, wenn man den Parameter wählt. Ich weiß nur grad gar 
nicht wie ich da am besten anfangen soll bzw. wie das Grundgerüst 
aussehen soll, wenn ich mit dem ATmega kommunizieren soll.

Um Hilfe wäre ich sehr dankbar.

von Micro123 (Gast)


Lesenswert?

Ich hätte hier noch eine Idee vorgearbeitet, aber ich weiß nicht wie ich 
es umsetzen kann:

SPI CLI:
fan-control-cli (intern):
geht von einer bestimmten erhaltenen bitfolge über MISO aus

fan-control-cli -h
Ausgabe von Hilfe


fan-control-cli -p
Get current duty Cycle in Prozent/Fixwert
erwartete bitfolge: 1 oder 2 mit Wert, 0000 0000 wird ignoriert
MOSI:1111 1111
MISO: 0000 0001 für Success
MISO(Prozent): 0000 DUTY ... DUTY ist der übergebene Wert
oder
MISO: 0000 1000 für Failure


fan-control-cli -s PERC
Set current duty Cycle in Prozent/Fixwert
erwartete bitfolge: 1 mit Wert, 0000 0000 wird ignoriert
MOSI: 0000 1111 ... messagetype
MOSI: 0000 PERC
MISO: 0000 0001 für Success (intern setzte Variable für manuelles 
Zuweisen auzf true)
MISO: 0000 1000 für Failure


fan-control-cli -r
Release control oder Duty Cycle
erwartete bitfolge: 1 mit Wert, 0000 0000 wird ignoriert
MOSI: 1111 0000
MISO: 0000 0001 für Success (intern setzte Variable für manuelles 
Zuweisen auf false)
MISO: 1000 0000 für Failure (Variable bereits auf false)
MISO: 0000 1000 für Failure


fan-control-cli -t
Get current tacho RPM
erwartete bitfolge: 1 oder 3 mit Wert, 0000 0000 wird ignoriert
MOSI: 1100 1100
MISO: 0000 0001 für Success
MISO: RPM (obere 8 bit) +
MISO: RPM (untere 8 bit)
oder
MISO: 0000 1000 für Failure

von Peter D. (peda)


Lesenswert?

Oh Gott, was fürn Scheiß!
Der Lehrer will Dich ärgern oder hat überhaupt keinen Durchblick. Am 
Slave-SPI der AVRs haben sich schon viele erfolglos die Zähne 
ausgebissen. Das ist praktisch nie zuverlässig hinzukriegen. Ein 
Protokoll mit CRC und Retry könnte mehr schlecht als recht laufen.
Der AVR hat 2 entscheidende Nachteile fürs Slave-SPI:
- keine Interruptlevel
- keinen Sendepuffer oder DMA.

Warum darfst Du nicht die UART nehmen, die ist in beide Richtungen 
gepuffert.

von Peter D. (peda)


Lesenswert?

Sehe grad, die UART soll ja auch benutzt werden. Wozu dann eine 2. 
Schnittstelle, das ist doch Unsinn^³.
Na dann noch viel Spaß mit dem Slave-SPI.

Tip: setze den SPI-Takt auf dem Raspi auf 1kHz oder weniger. Das sollte 
dann dem AVR Zeit genug für den SPI-Interrupt lassen.

von Einer K. (Gast)


Lesenswert?

Ich finde die Aufgabe gut!

Klar, die vom Peter genannte SPI Hürde...
Aber die bekommt man in den Griff.
(und sei es auch nur über Wartezeiten zwischen den Bytes)

Seriell, SPI, Tacho lesen PWM
Mehrere Plattformen
Plattformübergreifender Schnittstellencode.

Ja, das ist ein ganzes Büschel Aufgaben/Hürden.


Ich kann mir nicht vorstellen, dass die Aufgabe aus dem Nichts kommt.
Ohne ca 1/2 bis 1 Jahr Vorlaufzeit, ist das für einen unbedarften 
Anfänger nicht zu schaffen.

Micro123 schrieb:
> vielleicht 2-3 Std dauern.
Selbst für jemanden, welcher die Grundlagen voll auf dem Schirm hat und 
alle Komponenten kennt, ist das arg optimistisch.

Für dich:
Nimm die 3 Stunden, verdoppele sie, wegen der potentiellen 
Fehleinschätzung.
Verdoppele, wegen dem Debuggen.
Verdoppele, wg. der Doku
Dann bist du bei 24H, drei vollen Arbeitstagen.

Peter D. schrieb:
> Wozu dann eine 2.
> Schnittstelle, das ist doch Unsinn^³.
Übungsaufgaben sind immer etwas an den Haaren herbeigezogen.
So wie ein Vergleich, auch immer, mit mindestens einem Fuß hinken muss.

von Sefco (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Ich kann mir nicht vorstellen, dass die Aufgabe aus dem Nichts kommt.
> Ohne ca 1/2 bis 1 Jahr Vorlaufzeit, ist das für einen unbedarften
> Anfänger nicht zu schaffen.

Seh ich absolut genauso. Das ist keineswegs eine Anfängeraufgabe die man 
mal so in der 2. Informatikstunde vors Gesicht bekommt und in 1 h 
Programmiert. Ich befasse mich schon seit 10 Jahren hobbymäßig mit 
Mikrocontrollern und dafür würde ich definitiv eher 2-3 Tage brauchen 
damit alles zuverlässig läuft.

Micro123 schrieb:
> Ich bin von einem ganz anderen Gebiet eigentlich und werde es nie wieder
> mehr brauchen.

In welchem Kurs der eigentlich total unwichtig ist bekommt man bitte so 
eine Programmieraufgabe?

Ich fühle mich ein bisschen verarscht ehrlich gesagt und würde dir 
empfehlen mit dem Lehrer zu sprechen wenn du überhaupt keine Ahnung hast 
und mal abklopfen wieso das so ist. Soll er dir doch eine Hilfestellung 
geben.
Übrigens könnte ich mir vorstellen dass ein Lehrer der solche Aufgaben 
verteilt auch Gast in dem Forum ist. Da würde ich also auch mal eher die 
Füße still halten.

von M. K. (sylaina)


Lesenswert?

Wenn ich schon den ersten Satz der Aufgabe lese...da gab es ganz sicher 
schon Vorarbeiten dazu und ich bin mir sicher: Für diese 
Aufgabenstellung gibt es eine Musterlösung die funktioniert. Man kann 
durchaus das eine und andere Fach in der Schule/Uni als Quatsch ansehen 
(bei mir war das z.B. Einführung in die Mikrotechnologie im Studium...im 
5. Semester...ich studierte Mikrotechnologie...zum Leben zu wenig, zum 
Sterben zu viel) aber das entbindet ja einen nicht von der Aufgabe wenn 
man den Abschluss haben will. Und ich denke auch: Es wird ganz sicher 
lösbar sein mit vertretbaren Aufwand. Man muss sich halt damit 
beschäftigen.

von Jonas B. (jibi)


Lesenswert?

Was bist du bereit zu zahlen? Ich nehme auch Sachwerte, suche dringend 
ne PS5 :D

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
Noch kein Account? Hier anmelden.