Ist sowas mit den Atmel8 möglich?

Gast #174598
Lesenswert?

Hallo!
Ich habe mich nun doch entschlossen ein komplette einsteigerset zu
kaufen mit ATmega8-Mikrocontroller

Nun meine Frage da ich schonmal mein Visual BAsic Quelltext fertig
schreiben will

Der ATmega8-Mikrocontroller  soll folgendes können:

Die Zeit zwischen den Drehzahlimpulsen vom Motor lesen und entsprechend
der Motor drehzahl 10 Ausgänge schalten.

Mein Quelltext basiert auf folgendes schema ( Nur halt 10 statt 8
Eingänge , weil 8 wären zu ungenau):

Eing1 = A
Eing2 = B
Eing3 = C
Eing4 = D
Eing5 = E
Eing6 = F
Eing7 = G
Eing8 = H

If A = 0 Then
If B = 0 Then
If C = 0 Then
If D = 0 Then
If E = 0 Then
If F = 0 Then
If G = 0 Then
If H = 1 Then
i = 600 (Das sollen die rpm sein)


8 x End If

If A = 0 Then
If B = 0 Then
If C = 0 Then
If D = 0 Then
If E = 0 Then
If F = 0 Then
If G = 1 Then
If H = 0 Then
i = 625 (Das sollen die rpm sein)


8 x End If


Ist das Grundsätzlich damit realisierbar oder kann man von vornherein
sagen das geht nicht, denn das belegt doch bestimmt viel
Programmspeicher im Chip  denn ich muss ja sagen: Wenn die Zeit
zwischen x und y dann schalte ausg1,2,3,8,9 auf eins und die anderen
auf null  ---> und das ganze 1024 mal

mfg axel
Gast #174599
Lesenswert?

Hi,
ich habe keine Ahnung was diser Quellcode bewirken soll, aber hast du
schonmal in einer strukturierten Programmiersprache gearbeitet? Ich
meine nicht VB!

Es gibt naemlich so Dine wie logische Opertion und Schleifen ...

Gruß Tobias
Gast #174602
Lesenswert?

und kann er das dann auch auf 10 Ausgänge "umsetzen" sodass ich die
daten in meinem VB Programm auswerten kann?

sorry das ich das jetzt schon frage wo ich mich überhaupt noch nicht
eingearbeitet habe, aber dann kann ich schonmal mein prog
weiterschreiben welches 10 Eingänge vom Parallelport alle 40 ms abfragt
#174603
Lesenswert?

Nimms mir nicht übel, aber ein so extrem umständlicher Ansatz ist mir
noch nie unter die Augen gekommen, stehst Du mit Mathe denn derart auf
Kriegsfuß ?

Daß Du 512MB RAM hast, muß doch nicht heißen, daß Du die alle mit
Deinem VB-Programm belegen mußt.

Du willst doch nicht im Ernst 10240 IFs schreiben.

Hast Du schonmal was von Binärzahlen gehört ?

Addiere einfach alle Bits entsprechend ihrer Zweierpotenz und
multipliziere das Ergebnis dann mit Deinem Umrechnungswert.


Am einfachsten ist es aber, den ATMega8 den Wert gleich als Text über
die UART ausgeben zu lassen und über die COM (bzw. COM-USB-Adapter) in
Dein VB-Programm einzulesen.


Peter
Gast #174604
Lesenswert?

kannst du machen, der AVR wird nicht der begrenzende Faktor der ganzen
Sache sein, es sei denn, man lässt embedded_windows_avr drauf laufen,
dann kann es schon mal zum blue chip kommen oder dass er sich ab und zu
für ein paar Sekunden tot stellt.
Gast #174605
Lesenswert?

Warum fragst Du nicht in deinem VB-Programm (mit Spannungsteiler oder
über Transistor) einen Eingang mit dem Drehzahl-Signal ab?
Zwischen 2 hi- oder low-Pegeln kannst Du mit "X=Time" die
Zeitdifferenz ermitteln.
Ansonsten geht eine Zeitabfrage von Millisekunden über die
DirectX-Bibliothek.

MfG
Andi
Gast #174607
Lesenswert?

Also die Lösung vom Peter ist wohl die Eleganteste.
Schnell den Controller die Zeit messen lassen und direkt über seriell
an den Pc. Fertsch. Dann kannst du im klicki-bunti-VB schnell die Werte
anzeigen und gut ist.

Der parallele Port ist sehr anfällig gegen Kurzschluß und
Überspannung.
Ist nicht böse gemeint, aber wenn die Elektronik am LPT so ausssieht
wie dein geplanter Code, würde ich mir das nochmal überlegen....

Ciao
Uwe
Gast #174608
Lesenswert?

also übergebe ich die drehzahl direkt über die UART  als zahlen in ascii
code  da muss ich doch nur die bitrate im Microcontroller einstellen
inkl. das stoppbit definieren (Z.b. pegel auf high oder low legen um
die 1,5 fache zeit wie standard )und in meinem prog genau die gleichen
parameter einstellen. Über das COM-Control sollte das ja kein Prolem
darstellen in vb

mfg axel

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