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
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
aber es sit prinzipiell erst einmal möglich oder? Weil ich habe keine lust das das nachher umsonst ist was ich in vb mache
also grundsätzlich ist das erfassen von drehzahlimpulsen eines motors mit dem mega8 möglich ... schnell genug ist er... gruß alex
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
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
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.
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
Guten Morgen Ich habe ja auch drüber nachgedacht direkt über lpt die zeit zumessen aber dafür sind 1 ms viel zu lahm.
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
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
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.