Avr Atmega16 / Pins mit Timer

OP #3062828
Lesenswert?

Hallo,

ich würde gerne einen Atmega 16 programmieren, im Studium habe ich 
visual basic gelernt, aber nun wirds für mich schwierig. Ich möchte den 
Abstand zwischen zwei analogen Eingangssignalen messen und zeitverzögert 
einen Ausgangspin kurzzeitig schalten. Kann mir jmd. helfen?

Mit freundlichen Grüssen

Hoowie
#3062838
Lesenswert?

Benjamin Hoowie schrieb:
> Hallo,
>
> ich würde gerne einen Atmega 16 programmieren, im Studium habe ich
> visual basic gelernt, aber nun wirds für mich schwierig. Ich möchte den
> Abstand zwischen zwei analogen Eingangssignalen messen und zeitverzögert
> einen Ausgangspin kurzzeitig schalten. Kann mir jmd. helfen?


dafür gibts Tutorien

AVR-Tutorial        Assembler
AVR-GCC-Tutorial    C

Beim Roboternetz gibt es auch ein BASCOM Tutorial, welches für dich 
vielleicht angebrachter ist.

Wenn du dich für C entscheidest, dann wäre zumindest ein Reinschnuppern 
in ein allgemeineres C-Tutorial angebracht.


Wenn du dann deine ersten Schritte in der Progammierung gemacht hast, 
dann kann man sich über die konkrete Aufgabenstellung unterhalten. Aber 
im Moment macht es wenig Sinn, sich über die Probleme bei der 
Überquerung des Hindukusch zu unterhalten, wenn du erst mal Autofahren 
lernen musst.
OP #3062905
Lesenswert?

Also zuerst muss ich den Mikrocontroller deklarieren, danach die Anzahl 
der overflows an einem deklarierten Pin zählen, diese aus der gegebenen 
Frequenz, als prozentualen Zeitintervall interpretieren. Einen 
deklarierten Ausgangspin mit Frequenzabhängiger Anzahl von 
Ausgangssignalen einen Zeitintervall ohne Aktivität schalten. 
Anschliessend einen Zeitintervall mit "Saft" auf einen Pin legen.
Aus C werde ich im Moment noch nicht schlau, aber vlt. macht mich jmd. 
schlau?

Mit freundlichen Grüssen

B.Hoowie
#3062911
Lesenswert?

Benjamin Hoowie schrieb:
> Also zuerst muss ich den Mikrocontroller deklarieren, danach die Anzahl
> der overflows an einem deklarierten Pin zählen, diese aus der gegebenen
> Frequenz, als prozentualen Zeitintervall interpretieren. Einen
> deklarierten Ausgangspin mit Frequenzabhängiger Anzahl von
> Ausgangssignalen einen Zeitintervall ohne Aktivität schalten.
> Anschliessend einen Zeitintervall mit "Saft" auf einen Pin legen.

Wenn du mich sehen könntest, würdest du mich mit großen AUgen und 
gerunzelter Stirn vor dem Monitor sitzen sehen.
Und du könntest hören, wie ich "WTF hat das alles mit 'Ich möchte den
Abstand zwischen zwei analogen Eingangssignalen messen' zu tun?"
#3062957
Lesenswert?

Vielleicht überlegst du es dir ja noch und fängst erst mal damit an, zu 
erzählen, was denn eigentlich die Aufgabenstellung ist anstatt zu 
erzählen, wie du sie zu lösen gedenkst.

Denn im Moment hab ich eher das Gefühl, dass du alle mit deiner Wortwahl 
auf völlig falsche Fährten lockst.
OP #3062985
Lesenswert?

Das kenne ich schon, mir fehlt der praktische Umgang. In visual basic 
habe ich nur mit Tastatureingabe programmiert, ohne Pins, aber mit 
Grafik. Im Avr Studio32 habe ich einmal ein C Testprogramm 
übertragen.Das ist für mich fremd. Kann man das in C nicht so einfach 
ausdrücken? Das ist ja eine Hochsprache, oder sollte ich das doch in 
bascom machen?

Mit freundlichen Grüssen

B.Hoowie
OP #3063028
Lesenswert?

Kann ich die timerbefehle aus dem Datenblatt sowie die Pins auch mit in 
ein Visual basic Programm integrieren, sodass ich nicht immer umlernen 
muss? Kann ich mit if...=True in den Registernamen speichern und ist 
nach dem lesen etwas im Speicher? Beim Löschen von Registern muss ich 
den Registernamen auch aus dem Datenblatt entnehmen, stimmts? Mir fehlt 
die Erfahrung als Bestätigung.

Mit freundlichen Grüssen

B.Hoowie
Gast #3063033
Lesenswert?

Benjamin Hoowie schrieb:
> Kann ich die timerbefehle aus dem Datenblatt sowie die Pins auch mit in
> ein Visual basic Programm integrieren, sodass ich nicht immer umlernen
> muss?
Wenn dein VB-Compiler Maschinencode für den ATmega16 erzeugen kann, dann 
geht das, ansonsten nicht.

> Kann ich mit if...=True in den Registernamen speichern und ist
> nach dem lesen etwas im Speicher?
Und das heisst im Klartext, was?

> Beim Löschen von Registern muss ich
> den Registernamen auch aus dem Datenblatt entnehmen, stimmts? Mir fehlt
> die Erfahrung als Bestätigung.

Kau das Tutorium durch, dann nimmst du deine Fragen und formulierst sie 
verständlich.
Gast #3063034
Lesenswert?

Hi

>Kann ich die timerbefehle aus dem Datenblatt sowie die Pins auch mit in
>ein Visual basic Programm integrieren, sodass ich nicht immer umlernen
>muss?

Wahrscheinlich nicht. Außerdem bezweifle ich, das dein Visual Basic ein 
Hex-File für den ATMega erzeugen kann.

Womit willst du den ATMega16 eigentlich programmieren?

MfG Spess
Gast #3063040
Lesenswert?

Benjamin Hoowie schrieb:
> den Registernamen auch aus dem Datenblatt entnehmen, stimmts? Mir fehlt
> die Erfahrung als Bestätigung.

Quatsch nicht soviel. Besorg dir einen Programmer und einen µC. 
Anfängerthreads gibt es hier genug im Mikrocontroller.net in denen HW 
empfohlen wird.

Vergiss Visual Basic. BASCOM ist anders und µC programmieren sowieso 
anders als PC Programme erstellen.

Mach zu Anfang die einfachsten Übungen mit LED blinken lassen und lies 
das Datenblatt zum µC. Erfahrung kriegst du nur durch tun.
#3063059
Lesenswert?

Benjamin Hoowie schrieb:
>> Kann ich mit if...=True in den Registernamen speichern und ist
>> nach dem lesen etwas im Speicher?
> Und das heisst im Klartext, was?
>
>
> Muss ich den selber löschen? Muss ich neue Speicher Adressen angeben,
> sind die mit Index? Überschreibt sich der Flashspeicher?

Wie praktiker schon sagte.
Besorg dir einen Programmer, besorg dir ein Development Board und fang 
an ein Tutorial durchzukauen.

Dein VB kannst du dabei vergessen. Wenn du bei BASCOM bleibst, werden 
dir zwar die Wörter bekannt vorkommen und einiges wird gleich sein. 
Vieles ist aber auch ganz anders. De facto fängst du in dem Sinne bei 0 
an, in dem ein Spanisch-Schüler bei 0 anfängt, der schon Italienisch 
kann.


Deine Fragen ..... egeben ....... keinen ........ Sinn.
Die Wörter sind schon bekannt und auch sinnvoll. Aber die 
Zusammenstellung zum ganzen Satz macht keinen Sinn. Daher: spring ins 
kalte Wasser. Vor einem halben Jahr ab heute gerechnet wird das sowieso 
nichts mit deinem BLDC Motor. Also kannst du ruhig auch erst mal 2 
Wochen investieren, um dich mit deiner Entwicklungsumgebung vertraut zu 
machen und ein Tutorium durchzuarbeiten.
Gast #3063651
Lesenswert?

Hallo Benjamin
Es ist schon ein wenig kompliziert, ein Programm zu schreiben, aber wenn 
man seine Gedanken nicht ordnen kann, dann wird's überhaupt nix. Erst im 
fünften Post schreibst du, was du willst. Was erwartest du von uns ?
Das hier ist doch keine Quizsendung. Wenn du überhaupt eine Chance beim 
Programieren haben willst, lerne erst einmal eine Aufgabenstellung zu 
beschreiben. Nur so kannst du das Gesamtkonzept in einzelne Teilaufgaben 
gliedern und eine Struktur festlegen. Die Programmiersprache ist doch 
das geringste. Alle Befehle lassen sich irgendwo nachlesen und wenn du 
bereits Erfahrungen in VB hast, dann sollte dir klar sein, wie es geht. 
Aber ich hab das Gefühl, man hat dir vielleicht mal einen Bubblesort 
abverlangt. Und vielleicht mal ein paar Objekte auf eine Form ziehen 
lassen.
Sicherlich ist "C" gewöhnungsbedürftig, aber nicht unlernbar. Doch ohne 
strukturiertes Denken wirst du in jeder Sprache große Schwierigkeiten 
haben.
Daher mein Tip:
Entweder du beginnst mit Experimenten und fragst dann gezielt nach einem 
Problem, oder du läßt es und wirst mit anderen Dingen, die dir mehr 
liegen glücklich.
Gruß oldmax

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren