Hallo Ich habe ein Problem. Ich schreibe gerade an meiner Bachelorarbeit udn ich soll erstmal eine Motorregelung per USB machen. Das heisst ich steuer den Motor per PWM an und greife dann per Lichtschranke die Drehzahl ab.Das ganze läuft mit einem Atmega8 Die Steuerung übernimmt allerdings der PC. D.h Die Solldrehzahl wird von PC an den Atmega8 geschickt, der macht daraus eine PWM der Motor dreh sich, erzeugt Impulse durch die Lichtschranke, die der selbe Atmega8 wieder abgreift und an den pc schickt, der die Solldrehzahl mit Impulsen(istdrehzahl vergleicht)) Die Impulse kommen alsInterrupt 1 an den PC an Mein Problem ist das ganze funktioniert.Allerdings nicht zuverlässig, da nach einer unbestimmten Zeit der Atmega8 keine Daten mehr an den PC sendet. Ich weiss nicht was der Grund ist, soweit ich das sehe bleibt aber die USB_Kommunikation weiterhin bestehen Ich habe den Q-Code des Atmegamal agehängt. P.s auf Hostseite läuft Java, aber das sollte eig nicht das problem sein. Könntet ihr mir helfen wäre lieb Liebe Grüße T.Lenz
Tobi L. schrieb: > Die Steuerung übernimmt allerdings der PC. D.h DIe solldrehzahl wird > von PC an den Atmega8 geschickt, der macht daraus eine PWM der motor > dreh sich erzeugt Impulse durch die Lichtschranke die der selbe Atmega8 > wieder abgreift und an den pc schickt der solldrehzahl mit > Impulsen(istdrehzahl vergleicht)) So, so, der PC steuert, der PC gibt den Sollwert vor, der PC ermittelt den Istwert und der µC macht nur die PWM. :-)))))))))))))) Stell die Arbeit ein und besuch die Vorlesung zur Regelungstechnik. Off Topic: Gestern Dipl.-Ing., heute Bachelor, morgen Fensterputzer mit E-Kenntnis. Wenn die Leistung nicht reicht, verringert man einfach die Ansprüche. Armes Deu...
Hab mir den Code nicht genau angeschaut, aber gefühlsmäßig würde ich einfach sagen: "Dein uC macht das von der Geschwindigkeit einfach nicht mit". Habe schon von V-USB Projekten gelesen wo ein einfacher Interrupt zu viel war. Je nach dem wie schnell sich der Motor dreht, befindet sich der uC ja mehr im Interrupt des externen Interruptpins als sonst wo. In diesem Fall wird auch irgendwann dein V-USB aussteigen. Ich würde mal versuchsweise ein FT232 oder CP2102 an den UART des Controllers hängen und das V-USB auskommentieren. So brauchst Du nichts anderes an Deinem Code ändern (außer die UART Routinen z.B. von hier im Forum hinzufügen) und kannst schnell beurteilen ob es daran lag...
uC schrieb: > Hab mir den Code nicht genau angeschaut, aber gefühlsmäßig würde ich > einfach sagen: "Dein uC macht das von der Geschwindigkeit einfach nicht > mit". > > Habe schon von V-USB Projekten gelesen wo ein einfacher Interrupt zu > viel war. Je nach dem wie schnell sich der Motor dreht, befindet sich > der uC ja mehr im Interrupt des externen Interruptpins als sonst wo. In > diesem Fall wird auch irgendwann dein V-USB aussteigen. da ich noch keine lichtschranke habe (die wird noch geliefert) simuliere ich die impulse mit einem taster aber das dürfte ja eigentlich egal sein oder? Der atmega8 steigt ja aber lustiger nicht dann aus wenn ich impulse schicken sondern immer zu versch. zeitpunkten
Zu viele Daten an PC. da fängt Windoff zu spinnen an. Schicke weniger Daten und lass den Controller die Arbeit erledigen. Lass ihn ZB nur eine statusmeldung an den pc schicken (solldrehzahl erreicht, Motor dreht links,rechts, aktuelle drehzahl usw). der PC als schneller Reglerechner, dazu über USB....vergiss es.
chose schrieb: > Zu viele Daten an PC. da fängt Windoff zu spinnen an. Schicke weniger > Daten > und lass den Controller die Arbeit erledigen. Lass ihn ZB nur eine > statusmeldung an den pc schicken (solldrehzahl erreicht, Motor dreht > links,rechts, aktuelle drehzahl usw). > > der PC als schneller Reglerechner, dazu über USB....vergiss es. ich schicke nur 8 byte .....das können doch nicht zu viele daten sein oder
Tobi L. schrieb: > chose schrieb: >> Zu viele Daten an PC. da fängt Windoff zu spinnen an. Schicke weniger >> Daten >> und lass den Controller die Arbeit erledigen. Lass ihn ZB nur eine >> statusmeldung an den pc schicken (solldrehzahl erreicht, Motor dreht >> links,rechts, aktuelle drehzahl usw). >> >> der PC als schneller Reglerechner, dazu über USB....vergiss es. > > ich schicke nur 8 byte .....das können doch nicht zu viele daten sein > oder Trotzdem. WARUM muss der PC regeln? Diese Entscheidung hast du doch hoffentlich begründet getroffen. Und WARUM VUSB und nicht einfach USB->TTL Konverter. Viele Daten sind es ja nicht (schreibst du selber). Der ATmega8 muss alles machen, das ist am besten. Er vergleicht IST und SOLL, erzeugt das PWM und regelt das ganze. Er bekommt vom PC nur den Solwert vorgegeben. Alles andere muss sehr gut begründet werden. Und durch das weglassen des VUSB geraffels hast du auch gleich eine Fehlerquelle weniger. Wie du mit einem Taster die Lichtschranke ersetzt bleibt auch dunkel, wie schnell dreht denn der Motor und wie oft wird ein Impuls erzeugt pro Umdrehung? gruß cyblord
cyblord ---- schrieb: > Trotzdem. WARUM muss der PC regeln? > > Diese Entscheidung hast du doch hoffentlich begründet getroffen. > Und WARUM VUSB und nicht einfach USB->TTL Konverter. Viele Daten sind es > ja nicht (schreibst du selber). > > Der ATmega8 muss alles machen, das ist am besten. Er vergleicht IST und > SOLL, erzeugt das PWM und regelt das ganze. Er bekommt vom PC nur den > Solwert vorgegeben. Alles andere muss sehr gut begründet werden. > Und durch das weglassen des VUSB geraffels hast du auch gleich eine > Fehlerquelle weniger. Ist das Anstiftung zum 'gutenbergen'? Hoffentlich wird Tobi Dein und nicht mein neuer Kollege.
cyblord ---- schrieb: > Trotzdem. WARUM muss der PC regeln? Kann ich mich nur anschließen...ist Quatsch. Tobi L. schrieb: > ich schicke nur 8 byte .....das können doch nicht zu viele daten sein > oder Je nach dem, Du musst die Datenmenge betrachten. Also wie oft sendest Du die 8Byte? uC schrieb: > Habe schon von V-USB Projekten gelesen wo ein einfacher Interrupt zu > viel war. Jupp, da kann ich mich anschließen. Auch von Problemen mit der Versorgungsspannung hab ich schon gelesen. Ist in meinen Augen eher eine Bastellösung. Vorallem ohne Quarz (hast Du einen?) alles andere als stabil! Vorher würde ich auch einen USB<->USART Konverter alla FTDI verwenden, oder eben gleich einen uC mit USB.
Dipl.-Ing. schrieb: > Ist das Anstiftung zum 'gutenbergen'? Hoffentlich wird Tobi Dein und > nicht mein neuer Kollege. Hehe, der ist gut. Aber da ich als angehender Informatiker meinen Arbeitsplatz bereits allein im fensterlosen Keller lokalisiert habe kann er mir als "Kollege" gerne ab und zu ne Mail schicken ;-)
cyblord ---- schrieb: > kann er mir als "Kollege" > gerne ab und zu ne Mail schicken Aber vorher musst Du ihm noch sagen, wie das geht. So einer geht Dir nicht vom Rockzipfel. ;-)
Tobi L. schrieb: > da ich noch keine lichtschranke habe (die wird noch geliefert) simuliere > ich die impulse mit einem taster aber das dürfte ja eigentlich egal sein > oder? Wohl eher "oder". Je nach dem, wie dein Taster so drauf ist, schmeißt der deinen Controller beim Ändern des Schaltzustandes durch Tastenprellen möglicherweise ganz schön mit Interrupts zu. Hast du dir die Signale mal angesehen, die in den µC reingehen?
SNR schrieb: > cyblord ---- schrieb: >> Trotzdem. WARUM muss der PC regeln? > > Kann ich mich nur anschließen...ist Quatsch. > > Tobi L. schrieb: >> ich schicke nur 8 byte .....das können doch nicht zu viele daten sein >> oder > > Je nach dem, Du musst die Datenmenge betrachten. Also wie oft sendest Du > die 8Byte? > > uC schrieb: >> Habe schon von V-USB Projekten gelesen wo ein einfacher Interrupt zu >> viel war. > > Jupp, da kann ich mich anschließen. Auch von Problemen mit der > Versorgungsspannung hab ich schon gelesen. Ist in meinen Augen eher eine > Bastellösung. Vorallem ohne Quarz (hast Du einen?) alles andere als > stabil! > Vorher würde ich auch einen USB<->USART Konverter alla FTDI verwenden, > oder eben gleich einen uC mit USB. ich kann mir vorstellen das e probs gab wenn der interrupt 0 verwendet wird (da dieser schon von vusb belegt wird) ich benutze aber den int1. das problem tritt auch auf wenn kein interrupt ausgelöst wird.... und ich verwende einen 12Mhz quarz
Tobi L. schrieb: >> Tobi L. schrieb: >>> ich schicke nur 8 byte .....das können doch nicht zu viele daten sein >>> oder >> >> Je nach dem, Du musst die Datenmenge betrachten. Also wie oft sendest Du >> die 8Byte? Die Frage wäre auch noch interessant und evtl. ein Grund warum es hängt.
Geht es bei der Arbeit um die Regelung? Oder ist die Verbindung über V-USB Teil der Aufgabe? Bei ersterem: Bitte bitte den V-USB rauswerfen und €5 und 2h in einen richtigen Seriell-USB-Konverter stecken. Die Zeit, die Du jetzt mit dem V-USB-Gebastel, unerklärlichen Kommunikationsproblemen, gelegentlich verschwindenden COM-Ports auf PC-Seite, EMV-Problemen etc. verbringst, wird am Ende für den Feinschliff des Textes fehlen. Grüße, Tom, der nach einem Projekt von allen V-USB-Ambitionen geheilt ist.
Tom K. schrieb: > Geht es bei der Arbeit um die Regelung? Oder ist die Verbindung über > V-USB Teil der Aufgabe? Bei ersterem: Bitte bitte den V-USB rauswerfen > und €5 und 2h in einen richtigen Seriell-USB-Konverter stecken. Die > Zeit, die Du jetzt mit dem V-USB-Gebastel, unerklärlichen > Kommunikationsproblemen, gelegentlich verschwindenden COM-Ports auf > PC-Seite, EMV-Problemen etc. verbringst, wird am Ende für den > Feinschliff des Textes fehlen. > > Grüße, > Tom, der nach einem Projekt von allen V-USB-Ambitionen geheilt ist. es geht bei der Arbeit um die komminuaktion mit usb das regeln ist nice to have und stellt nr eine implementierung da
Tobi L. schrieb: > Tom K. schrieb: >> Geht es bei der Arbeit um die Regelung? Oder ist die Verbindung über >> V-USB Teil der Aufgabe? Bei ersterem: Bitte bitte den V-USB rauswerfen >> und €5 und 2h in einen richtigen Seriell-USB-Konverter stecken. Die >> Zeit, die Du jetzt mit dem V-USB-Gebastel, unerklärlichen >> Kommunikationsproblemen, gelegentlich verschwindenden COM-Ports auf >> PC-Seite, EMV-Problemen etc. verbringst, wird am Ende für den >> Feinschliff des Textes fehlen. >> >> Grüße, >> Tom, der nach einem Projekt von allen V-USB-Ambitionen geheilt ist. > > es geht bei der Arbeit um die komminuaktion mit usb das regeln ist nice > to have und stellt nr eine implementierung da Und dies nimmt einen USB->TTL Konverter zwingend aus? Wie ist denn der Titel der Arbeit?
Tobi L. schrieb: > es geht bei der Arbeit um die komminuaktion mit usb das regeln ist nice > to have und stellt nr eine implementierung da Das ist aber nicht alles, oder?
Klaus Dieter schrieb: > Tobi L. schrieb: >> es geht bei der Arbeit um die komminuaktion mit usb das regeln ist nice >> to have und stellt nr eine implementierung da > > Das ist aber nicht alles, oder? theoretisch schon praktisch finde ich das bisselwenig
Tobi L. schrieb: >> Wie ist denn der Titel der Arbeit? > > Motorregelung per USB^^ Lächerlich. Das kriegt man in einem Tag hin dass der Motor eine vorgegebene Drehzahl einhält. Dafür brauchts noch nichtmal spezielle Algos aus der Regelungstechnik. Und natürlich verwendet man einem USB Protokollkäfer. Was denn sonst. Anspruchsvoller wäre es, wenn du die USB Kommunikation selber entwicklen müsstest, aber da du ja die V-USB Lib nimmst ist das eh raus. gruß cyblord
cyblord ---- schrieb: > Tobi L. schrieb: >>> Wie ist denn der Titel der Arbeit? >> >> Motorregelung per USB^^ > > Lächerlich. Das kriegt man in einem Tag hin dass der Motor eine > vorgegebene Drehzahl einhält. Dafür brauchts noch nichtmal spezielle > Algos aus der Regelungstechnik. Man darf sich ja auch nicht überarbeiten ;-) Meine Arbeit war auch etwas umfangreicher.
cyblord ---- schrieb: > Und natürlich verwendet man einem USB Protokollkäfer. Was denn sonst. Einen uC mit USB oder man schreibt einen eigenen USB-Stack ;-) Das Zweite würde auch eher den Umfang treffen. Wobei die glaube ich heutzutage nur noch 3 Monate Zeit haben. Also einen Monat Einarbeitung, einen Monat für das schreiben -> bleibt noch ein Monat für die Bearbeitung.
Tobi L. schrieb: > es geht bei der Arbeit um die komminuaktion mit usb das regeln ist nice > to have und stellt nr eine implementierung da Dann würde ich an Deiner Stelle lieber einen anderen uC nehmen der bereits USB on Chip hat. Ich frage mich sowieso warum man heutzutage noch einen popligen 8-Biter nimmt, wenn es für den gleichen Preis einen 32-Biter gibt.
Aber kann das denn wirklich eine sinnvolle Bachelorarbeit werden? Gab es da keine kreativere Idee? Etwas, was auch noch in irgendeiner Form nützlich ist? Scheint ja, mindestens teilweise, ein technisches Studium zu sein, da gibt es doch einiges an ungelösten Problemen oder interessanten Aufgabenstellungen!
SNR schrieb: > Tobi L. schrieb: >> es geht bei der Arbeit um die komminuaktion mit usb das regeln ist nice >> to have und stellt nr eine implementierung da > > Dann würde ich an Deiner Stelle lieber einen anderen uC nehmen der > bereits USB on Chip hat. Ich frage mich sowieso warum man heutzutage > noch einen popligen 8-Biter nimmt, wenn es für den gleichen Preis einen > 32-Biter gibt. Naja die 8 Bitter sind ne Ecke aufgeräumter und durchschaubarer. Ausserdem wenn ein 8 Bitter für die Aufgabe ausreicht, warum nicht.
blabla. es gibt auch 8 biter mit USB on board..... das ist aber nicht schon etwa die gesamte bachelorarbeit, oder???
cyblord ---- schrieb: > Naja die 8 Bitter sind ne Ecke aufgeräumter und durchschaubarer. > Ausserdem wenn ein 8 Bitter für die Aufgabe ausreicht, warum nicht. Dann wenigstens einen 8-Bitter mit USB. AVR-USB ist meiner Meinung nach eher Pfusch (mir fällt gerade kein besseres Wort ein). Nicht, dass du damit noch Probleme bekommst (auch zeitlich). Aber ein bisschen USB und eine Regelschleife mit einer PWM Endstufe? Das ist doch eher ein Wochenendprojekt ;-)
cyblord ---- schrieb: > Tobi L. schrieb: >>> Wie ist denn der Titel der Arbeit? >> >> Motorregelung per USB^^ > > Lächerlich. Das kriegt man in einem Tag hin dass der Motor eine > vorgegebene Drehzahl einhält. Dafür brauchts noch nichtmal spezielle > Algos aus der Regelungstechnik. > Und natürlich verwendet man einem USB Protokollkäfer. Was denn sonst. > Anspruchsvoller wäre es, wenn du die USB Kommunikation selber entwicklen > müsstest, aber da du ja die V-USB Lib nimmst ist das eh raus. > > gruß cyblord finde es auch extrem flach... was anderes wärs, wenn erst echt den USB Stack selber machen würde.... aber so einer Arbeit muss doch auch ein Professor zustimmen. dann wird ja scheinbar von der Seite gar nichts gefordert.
ich kann die pic18 mit USB empfehlen. haben 8 Bit... oder je andre Hochschule...
Egs_ti schrieb: > > finde es auch extrem flach... was anderes wärs, wenn erst echt den USB > Stack selber machen würde.... aber so einer Arbeit muss doch auch ein > Professor zustimmen. dann wird ja scheinbar von der Seite gar nichts > gefordert. Du musst halt auch mal sehen welche Dorfschulen heutzutage mal flott nen Bachelor "Studiengang" anbieten. Dozenten sind dann irgendwelche Privapersonen (siehe den Angeberthread hier wo sich Ings. damit brüsten zu dozieren). Und die nennen sich dann auch nur noch "Hochschule" obwohl sie bisher ne drittklassige FH waren. Also alles und jeder studiert heute an einer Hochschule. Das kannst du mit einer Uni oder gar einer Diplomarbeit einfach nicht mehr vergleichen.
hmmm, aber mit sonst ner thesis hat man doch niergends je chance. die lachen einen doch aus..
also bei ins an der fh sind Sachen wie VGA Schnittstelle auf fpga oder ähnliches angesagt.... schaut vorbei: hs-pforzheim.de
cyblord ---- schrieb: > Naja die 8 Bitter sind ne Ecke aufgeräumter und durchschaubarer. > Ausserdem wenn ein 8 Bitter für die Aufgabe ausreicht, warum nicht. Ja, habe ich früher auch immer gesagt. Für minimale Dinge reicht so ein 8Biter ja auch aus. Aber warum soll ich mich unnötig einschränken? Das fängt bei Datentypen an und hört bei den Interrupts auf... Egs_ti schrieb: > also bei ins an der fh sind Sachen wie VGA Schnittstelle auf fpga oder > ähnliches angesagt.... schaut vorbei: hs-pforzheim.de /Ironie on Wow, das ist ja eine ganz andere Hausnummer. /Ironie off Manch andere Leute machen sowas auf nem 8 Biter in ASM.
Und Tobi L., nicht, dass du das jetzt falsch verstehst. Das ist hier jetzt sicher nicht nur reines Gemecker, sonder sicherlich auch der ein oder andere Tipp, dass das nicht unbedingt DAS Thema für eine Bacholorarbeit ist. Zumindest dann, wenn es nicht nur darum geht, schnell und bequem fertig zu werden.
Egs_ti schrieb: > finde es auch extrem flach... Das Projekt USB-Eierwärmer war sicher schon vergeben? :-) Mit Eurem Beitrag habt Ihr Tobi aber wenig geholfen. Für mich stellt sich die 1.Frage, ob Tobi schon mal, ohne seine prellende Taste grundsätzlich eine DAUERHAFTE, sichere Verbindung zum PC betreiben konnte. Wahrscheinlich verschuckt sich da schon was? Dann sollte er mal systematischer vorgehen.
> Wohl eher "oder". Je nach dem, wie dein Taster so drauf ist, schmeißt > der deinen Controller beim Ändern des Schaltzustandes durch > Tastenprellen möglicherweise ganz schön mit Interrupts zu. Hast du dir > die Signale mal angesehen, die in den µC reingehen? habe dazu eine status LED die bei jedem tastendruck den zustand ändert
oszi40 schrieb: > Mit Eurem Beitrag habt Ihr Tobi aber wenig geholfen. Für mich stellt > sich die 1.Frage, ob Tobi schon mal, ohne seine prellende Taste > grundsätzlich eine DAUERHAFTE, sichere Verbindung zum PC betreiben > konnte. Wahrscheinlich verschuckt sich da schon was? Dann sollte er mal > systematischer vorgehen. endlich mal JMD der sich wirklich gedanken macht. Dem atemga8 ist es scheiss egal ob ich ne taste drücke oder nicht iwann schickt er keine Daten mehr. Wobei die kommunikation anscheimnend wirkloch vorhanden bleibt
Egs_ti schrieb: > hmmm, aber mit sonst ner thesis hat man doch niergends je chance. die > lachen einen doch aus.. Die Frage ist, ob jemand mit solch einer Rechtschreibung, bessere Chancen hat...
Norbert S. schrieb: > Hi, > > und da die LED nicht blinkt, prellt die Taste nicht? Oh mann... > > Gruß, > Norbert das habe ich nicht gesagt..! ich habe gesagt bei jedem Tastendruch wechselt die LED ihren Zustand. D.h wenn die LED initial Aus ist Erste Möglichkeit Tastendruck ohne Prellen -> LED AN. Zweite Möglichkeit Tastendruck mit Prellen -> LED AN durch Preller-> LED AUS. Hoffe es ist nun klar geworden-.-
Nur so schrieb: > Egs_ti schrieb: >> hmmm, aber mit sonst ner thesis hat man doch niergends je chance. die >> lachen einen doch aus.. > > Die Frage ist, ob jemand mit solch einer Rechtschreibung, bessere > Chancen hat... Tja, wenn ich vom Handy aus schreibe, achte ich da nicht so drauf, aber schön dass du dich dran auf hängst... :)
tobi L schrieb: > endlich mal JMD der sich wirklich gedanken macht Wem seine Bachelor-Arbeit ist das eigentlich? Wer sollte sich also Gedanken machen? Jeder Lehrling im 3. Lehrjahr kann sowas besser! Wollt ihr denn gar nichts mehr lernen, nur noch gutenbergen???
ich habe mal folgenden quelltext compiliert und laufen gelassen und selbst da schickt mir das device iwann keine neuen daten mehr.... es scheint also wirklich mit dem interrupt 1 zusammen zu hängen....oder seht ihr irgendwo irgendwelche fehler?? meien frage kann ich das problem lösen indem ich am anfang der ISR von int 1 zuerst die interrups deaktiviere und am ende wieder aktiviere? LÖiebe grüße Tobi
tobi L schrieb: > Zweite Möglichkeit Tastendruck mit Prellen -> LED AN durch Preller-> LED > AUS. Autsch! Schau Dir ein Oszillogramm an: http://de.wikipedia.org/wiki/Prellen Statt simplen Tastendruck könnte man auch ein langsames Blinken programmieren und auswerten. Wenn das klappt kannst Du weitersuchen.
Schau doch mal in der usbdrv.h unter den Punkten Interrupt latency und Maximum interrupt duration / CPU cycle consumption nach. Danach begutachtest du mal den code, der mit avr-objdump -dS ausgegeben wird und zählst die Takte, welche die ISR beansprucht. Irgendwie beisst sich das.
Hans schrieb: > Schau doch mal in der usbdrv.h unter den Punkten Interrupt latency und > Maximum interrupt duration / CPU cycle consumption nach. Danach > begutachtest du mal den code, der mit avr-objdump -dS ausgegeben wird > und zählst die Takte, welche die ISR beansprucht. Irgendwie beisst sich > das. endlich mal en anständiger Vorschlag... beimn ersten überfliegen steige ich da zwar noch nicht ganz durch werde es mir aber mal morgn in ruhe durchlesen..Danke!
Hans schrieb: > Schau doch mal in der usbdrv.h unter den Punkten Interrupt latency und > Maximum interrupt duration / CPU cycle consumption nach. Danach > begutachtest du mal den code, der mit avr-objdump -dS ausgegeben wird > und zählst die Takte, welche die ISR beansprucht. Irgendwie beisst sich > das. habe mich jetzt mal ein wenig mehr reingearbeitet und ich probiere es gerade mal aus. könnte sein als hättest du den fehler gefunden. meien frage kann ich nicht auch statt dem ISR_NOBLOCK paramter in jeder ISR jede ISR wie folgt aufbauen:? ISR(OVERFLOW...){ cli();//interrupts global ausschalten mein code sei();//interrupts global einschalten }
Tobi L schrieb: > kann ich nicht auch statt dem ISR_NOBLOCK paramter in jeder ISR > > jede ISR wie folgt aufbauen:? > > ISR(OVERFLOW...){ > cli();//interrupts global ausschalten > > mein code > > > > sei();//interrupts global einschalten > } Beim Aufruf einer ISR wird das I-Bit bereits automatisch gelöscht.
Ich habe eigentlich gute Erfahrungen mit V-USB gemacht, wenn man den MC nicht überfordert. V-USB braucht den höchsten IRQ im System, alle anderen müssen defensiv programmiert sein, aber dann spielt es eigentlich recht gut, und auch stundenlang. Allerdings ist die 12 Mhz Variante die langsamste von allen, ich spendiere immer 16 Mhz. Was mir auffällt: Du initialisierst die Ports erst, nachdem die IRQs schon laufen - schlechte Idee. Generell solltest du auch mal schauen, ob du z.B. den COMPA Irq überhaupt brauchst. Ein einfaches Schreiben von OCR1A braucht keinen eigenen Interrupt. Verschwende keine Zeit in deinen IRQ Routinen. Verlege einfache Aufgaben in die main loop. Überlege die Verwendung eines PID Reglers für den MC,damit der den Grossteil des Jobs selber macht. Schau bei anderen V-USB Projekten nach, wie die Jungs mit dem Watchdog umgehen.
Ah, noch vergessen: Du solltest unbedingt die Variante mit den 3,6 Volt Zenerdioden an den Datenleitungen nehmen, nicht die mit den 2 Si-Dioden in der Vcc des Prozessors. Alternativ speise den gesamten MC aus einem 3,3 Volt LDO.
ich habe mir mal die Vorschläge zu Herzen genommen und einige änderungen vorgenommen. allerdings funktioniert es immernoch nicht zuverlässig.-.- würde es helfen wenn ich am anfang der funktionread bzw funktionwrite methode die interrupts global ausschalte und am ende wieder global einschalte?
ich habe den aufwand für den atmega8 noch weiter reduziert mit der aktuellen version und trotzdem macht er die scheisse-.- ich habe jetzt nur die PWM laufen aber ohne Interrupt und den interrupt 1 unterrupt0 wird ja von VUSB genutzt und soweit ich weiss ist int0 höher priorisiert als int1 also dürfte es theoretisch keine probleme geben
Das Problem hab ich mir jetzt nicht angeschaut, aber ich bin mir sicher du kriegst es hin. Ich wollte dir nur mein Mitgefühl mitteilen, weil du hier um Hilfe bittest, und darüber hinweg schauen musst, dass irgendwelche Leute mit Ego-Problemen sich dadurch beweisen müssen, andere in so einem Forum fertig zu machen, und ihre Arbeit lächerlich und Murks zu nennen, statt zu HELFEN, was der eigentliche Zweck eines Forums ist. Frustrierend, oder? Ich hab das Gefühl aber, wenn sie hier sind, dass sie nicht gerade Abteilungschefs bei Bosch oder so was sind, sonst hätten sie 1. kein Ego-Problem dass sie so kindisch verarbeiten müssten, 2. keine Zeit, in so einem Forum ihre Zeit damit zu verschwenden, andere Leute umsonst fertig zu machen, und würden 3. deswegen ihre wertvolle Zeit damit verbringen, zu HELFEN, wenn sie hier überhaupt einen Beitrag leisten wollen. Ich hab jetzt auch nicht viel geholfen, aber wollte dir nur bissle Motivation geben, irgendwo da draußen im wilden Internet hilft dir bestimmt jemand. Such mal auf Englisch oder so =P Grüße, viel Glück und Erfolg bei deiner Arbeit
Marc O.S. schrieb: > Ich wollte dir nur mein Mitgefühl mitteilen, weil du > hier um Hilfe bittest, und darüber hinweg schauen musst, dass > irgendwelche Leute mit Ego-Problemen sich dadurch beweisen müssen, > andere in so einem Forum fertig zu machen, und ihre Arbeit lächerlich > und Murks zu nennen, statt zu HELFEN, was der eigentliche Zweck eines > Forums ist. Der Tobi erstellt eine wissenschaftliche Abschlussarbeit. Seine Vorgehensweise ist dabei nicht sehr wisenschaftlich. Das sieht eher nach Versuch und Irrtum aus. Wenn ihm die Lösung - wie Marc es wünscht - hier vorgegeben wird, entspricht das nicht dem Sinn und Zweck der Abschlussarbeit. Ein Prof., der ein solches Thema vergibt, liest hier bestimmt nicht mit. Tobi "Gutenberger" wird mit den fremden Federn punkten. Im Berufsleben wird er schnell als Blender auffliegen. Um Tobi zu helfen, muss man ihn ermutigen, sich wissenschaftlich dem Problem zu nähern.
Profi schrieb: > Marc O.S. schrieb: >> Ich wollte dir nur mein Mitgefühl mitteilen, weil du >> hier um Hilfe bittest, und darüber hinweg schauen musst, dass >> irgendwelche Leute mit Ego-Problemen sich dadurch beweisen müssen, >> andere in so einem Forum fertig zu machen, und ihre Arbeit lächerlich >> und Murks zu nennen, statt zu HELFEN, was der eigentliche Zweck eines >> Forums ist. > > Der Tobi erstellt eine wissenschaftliche Abschlussarbeit. Seine > Vorgehensweise ist dabei nicht sehr wisenschaftlich. Das sieht eher nach > Versuch und Irrtum aus. > > Wenn ihm die Lösung - wie Marc es wünscht - hier vorgegeben wird, > entspricht das nicht dem Sinn und Zweck der Abschlussarbeit. Ein Prof., > der ein solches Thema vergibt, liest hier bestimmt nicht mit. Tobi > "Gutenberger" wird mit den fremden Federn punkten. Im Berufsleben wird > er schnell als Blender auffliegen. Um Tobi zu helfen, muss man ihn > ermutigen, sich wissenschaftlich dem Problem zu nähern. das verstehe ich vollkommen...allerdings sehe ich es nicht so dass ich es gleich alles "gutenberge". Ich habe hier einfach einen nicht reproduzierbaren Fehler und bin mit dem nerven am Ende da ich einfach nicht weiterkomme seit 1 woche und schon mehrer Nachthichten eingelegt habe! Ehrlich gesat glaube ich nicht dass ich als Blender im Berufsleben gelten werde wenn ich meine Kollegen bei einem nicht reproduzierbaren Fehler um Hilfe frage oder? ich glaube "profi" verwechselt da den Begruff " Gutenbergen" mit "um Hilfe bitten"
Du hast auch meine Fragen zu deinem Aufbau einfach ignoriert. - Muss es V-USB sein? Scheiden USB-TTL und µC mit integr. USB aus? - Warum muss der PC regeln und schickt nicht einfach den sollwert an den atmega und dieser übernimmt die regelung? - Was ist das erklärte Ziel deiner Arbeit? Du schreibst dass die Motorregelung nur eine Präsentation der USB Verbindung sein soll, d.h. der Fokus liegt auf der USB Verbindung. Aber warum dann V-USB? Das ist auch nur das sture verwenden einer fertigen lib. gruß cyblord
Du hast dein Array 'datenbuffer' sehr knapp bemessen und ich vermute, das könnte ein Teil des Problems sein:
1 | if(len > bytesRemaining) // len is max chunk size |
2 | len = bytesRemaining; // send an incomplete chunk |
3 | |
4 | for(i = 0; i < len; i++){ |
5 | datenbuffer[currentPosition++] = data[i]; |
6 | }
|
7 | OCR1A =datenbuffer[1]; |
8 | currentPosition += len; |
9 | bytesRemaining -= len; |
Mach mal den datenbuffer grösser. Ein Überschreiben des Endes kann sehr eigenartige Effekte erzeugen. Ist eigentlich eine gute Strategie, ein paar Bytes mehr zu reservieren, als real benutzt werden.
Tobi L. schrieb: > ich habe den aufwand für den atmega8 noch weiter reduziert mit der > aktuellen version und trotzdem macht er die scheisse-.- Deinen Code habe ich nicht ausgewertet. Finde erst mal an Hand eines simplen Programms heraus, wo die Säge grundsätzlich klemmt: USB-Übertragung oder PWM-Rechenzeit. Hier im Forum sind auch noch zahlreiche Beiträge über USB-Probleme zu finden. Jede Forum-Suche wird Dir neue Erkenntnisse bringen. Eine Bachelorarbeit braucht auch etwas systematischen Forschergeist!
Matthias Sch. schrieb: > Ist eigentlich eine gute Strategie, ein > paar Bytes mehr zu reservieren, als real benutzt werden. wtf? Das verstehe ich wirklich nicht.
cyblord ---- schrieb: > Du hast auch meine Fragen zu deinem Aufbau einfach ignoriert. > > - Muss es V-USB sein? Scheiden USB-TTL und µC mit integr. USB aus? > - Warum muss der PC regeln und schickt nicht einfach den sollwert an den > atmega und dieser übernimmt die regelung? > - Was ist das erklärte Ziel deiner Arbeit? Du schreibst dass die > Motorregelung nur eine Präsentation der USB Verbindung sein soll, d.h. > der Fokus liegt auf der USB Verbindung. Aber warum dann V-USB? Das ist > auch nur das sture verwenden einer fertigen lib. > > gruß cyblord > - Muss es V-USB sein? Scheiden USB-TTL und µC mit integr. USB aus? ausser vusb kenn ich keien lib für AVRs. zu USB-TTL weiss ich im mom ehrlich gesagt nicht was du meinst... > - Warum muss der PC regeln und schickt nicht einfach den sollwert an den > atmega und dieser übernimmt die regelung? das ahbe ich mir auch schon überlegt aber wie weiss ich dann ob das device noch auf meine sollwert regelungen reagiert?
cyblord ---- schrieb: > Was ist das erklärte Ziel deiner Arbeit? Genau, das wäre zu klären. Dann macht man sich über Lösungsstrategien Gedanken. Man wählt die passende Lösung unter Beachtung der Randbedingungen, ... Und bereits hier stolpert Tobi, er kennt die Randbedingung seiner gewählten Lösung nicht. Aber egal, fummeln hier, fummeln da, Hilferuf ins Forum, ..., es wird schon irgendwie gehen. @Tobi Das ist von mir nicht böse gemeint, aber bei Deiner Abschlussarbeit ist der Weg das Ziel!
oszi40 schrieb: > Tobi L. schrieb: >> ich habe den aufwand für den atmega8 noch weiter reduziert mit der >> aktuellen version und trotzdem macht er die scheisse-.- > > Deinen Code habe ich nicht ausgewertet. Finde erst mal an Hand eines > simplen Programms heraus, wo die Säge grundsätzlich klemmt: > USB-Übertragung oder PWM-Rechenzeit. Hier im Forum sind auch noch > zahlreiche Beiträge über USB-Probleme zu finden. Jede Forum-Suche wird > Dir neue Erkenntnisse bringen. Eine Bachelorarbeit braucht auch etwas > systematischen Forschergeist! also so wie ich es sehe klemmt es am Int1 ich weiss zwar nicht warum aber ich habe die pwm komplett ausgeschaltet. und nur den interrupt eingeschaltet dann habe ich per taster impulse erzeugt wie blöd...dann aufgehört und nach 10 min blieb das teil stehen...bzw hat keine daten mehr gesendet....der taster lief ging aber weiterhin
oszi40 schrieb: > Tobi L. schrieb: >> ich habe den aufwand für den atmega8 noch weiter reduziert mit der >> aktuellen version und trotzdem macht er die scheisse-.- > > Deinen Code habe ich nicht ausgewertet. Finde erst mal an Hand eines > simplen Programms heraus, wo die Säge grundsätzlich klemmt: > USB-Übertragung oder PWM-Rechenzeit. Hier im Forum sind auch noch > zahlreiche Beiträge über USB-Probleme zu finden. Jede Forum-Suche wird > Dir neue Erkenntnisse bringen. Eine Bachelorarbeit braucht auch etwas > systematischen Forschergeist! also so wie ich es sehe klemmt es am Int1 ich weiss zwar nicht warum aber ich habe die pwm komplett ausgeschaltet. und nur den interrupt eingeschaltet dann habe ich per taster impulse erzeugt wie blöd...dann aufgehört und nach 10 min blieb das teil stehen...bzw hat keine daten mehr gesendet....der taster lief ging aber weiterhin Profi schrieb: > cyblord ---- schrieb: >> Was ist das erklärte Ziel deiner Arbeit? > > Genau, das wäre zu klären. Dann macht man sich über Lösungsstrategien > Gedanken. Man wählt die passende Lösung unter Beachtung der > Randbedingungen, ... das erklärte ziel ist mit dem thema meiner bachelorarbeit beschreiben "eine USB-motorregelung mit hilfe eines AVR mikrocontrollers"
Tobi L. schrieb: > eine USB-motorregelung mit hilfe eines AVR mikrocontrollers Und diesen Sprachmist bekommst du bei deinem Prof. durch?
Meine Meinung: V-USB würde ich niemals für eine Bachelorarbeit verwenden. Auf der V-USB-Seite wird eindeutig darauf hingewiesen, dass mehrere Dinge der USB-Spezifikation verletzt werden. Somit ist die V-USB-Lösung eine sicherlich angenehme Lösung für Basteleien (Hab hier selbst 2 am Laufen), aber für richtige Entwicklung gehört entweder ein USB-RS232-Umsetzer (z.B. ftdi) oder direkt ein Controller mit USB-Schnittstelle (z.B. mega32u4, at90usb...) her. Diese Bausteine laufen dann zuverlässig und das Timing ist recht unkritisch, da dies die Hardware übernimmt.
Tobi L. schrieb: > ausser vusb kenn ich keien lib für AVRs. zu USB-TTL weiss ich im mom > ehrlich gesagt nicht was du meinst... Ich meine auch keine andere lib. USB-TTL damit meine ich eine einfache serielle Schnittstelle also USB->RS232->TTL. (Wenn du nichtmal RS232 kennst wundert mich das scheitern bei USB mal gar nicht. Warum muss man immer gleich den komplizierten Weg gehen ohne auch nur EINMAL eine pupsige serielle Verbindung zwischen PC und Controller hergestellt zu haben?) Aber diese Methode ist sehr einfach, ist erprobt, viele AVRs haben Hardware USARTs drinn. D.h. du hättest erstmal eine funktionierende Verbindung zum PC, und kannst dich auf den Rest der Aufgabe konzentrieren. > das ahbe ich mir auch schon überlegt aber wie weiss ich dann ob das > device noch auf meine sollwert regelungen reagiert? Na weil der Controller natürlich Status-Infos zurücksendet. z.B. die IST Drehzahl. Wurde aber weiter oben schon genauso empfohlen. gruß cyblord
Heinz schrieb: > Tobi L. schrieb: >> eine USB-motorregelung mit hilfe eines AVR mikrocontrollers > > Und diesen Sprachmist bekommst du bei deinem Prof. durch? was ist jetzt so verkehrt an dem Titel? ja die Groß-und Kleinschreibung stimmt nicht. Aber ich wiederhole mich gerne wieder...Ich wusste nicht, dass es im Forum hier auf 100%tig richtige Rechtschreibung drauf ankommt.
Tobi L. schrieb: > "eine USB-motorregelung mit hilfe eines AVR mikrocontrollers" Dann geh doch mal anders vor. Implementiere erstmal die PWM und die Istwerterfassung mit Hilfe eines echten Motors. Implementiere dann den Regler, z.B. schau dir mal Application Note AVR221 an, ein prima PID Regler. Sollwerte kannst du ja mit dem Taster setzen und den Regler testen. Gehe dann an die Kommunikation ran. V-USB saugt ne Menge Resourcen, deswegen ist vllt ein FT232 oder eine ähnliche Lösung das einfachste, zumal dann jeder Mac, Linux- oder M$ Rechner mit dem Teil kommunizieren könnte.
Tobi L. schrieb: > das ahbe ich mir auch schon überlegt aber wie weiss ich dann ob das > device noch auf meine sollwert regelungen reagiert? Wo ist das Problem? Du schickst einen Sollwert, der µC antwortet mit einem ACK. Wenn dir das nicht reicht, kann dir der Controller sogar noch melden, wenn der Sollwert erreicht ist, wenn er nicht erreicht werden konnte (PWM auf Vollgas und Drehzahl trotzdem zu niedrig), wie auch immer.
cyblord ---- schrieb: > Tobi L. schrieb: > >> ausser vusb kenn ich keien lib für AVRs. zu USB-TTL weiss ich im mom >> ehrlich gesagt nicht was du meinst... > > Ich meine auch keine andere lib. USB-TTL damit meine ich eine einfache > serielle Schnittstelle also USB->RS232->TTL. > (Wenn du nichtmal RS232 kennst wundert mich das scheitern bei USB mal > gar nicht. Warum muss man immer gleich den komplizierten Weg gehen ohne > auch nur EINMAL eine pupsige serielle Verbindung zwischen PC und > Controller hergestellt zu haben?) klar kenn ich RS2323 nur versthe ich nicht was mir diese wandlung direkt bringen soll statt usb eine UART zu nehmen. > Aber diese Methode ist sehr einfach, ist erprobt, viele AVRs haben > Hardware USARTs drinn. D.h. du hättest erstmal eine funktionierende > Verbindung zum PC, und kannst dich auf den Rest der Aufgabe > konzentrieren. > >> das ahbe ich mir auch schon überlegt aber wie weiss ich dann ob das >> device noch auf meine sollwert regelungen reagiert? > Na weil der Controller natürlich Status-Infos zurücksendet. z.B. die IST > Drehzahl. Wurde aber weiter oben schon genauso empfohlen. aber wenn ich die ISTdrehzahl zurücksende habe ich doch genau das selbe problem wieder Oo oder nicht?
Matthias Sch. schrieb: > Tobi L. schrieb: >> "eine USB-motorregelung mit hilfe eines AVR mikrocontrollers" > > Dann geh doch mal anders vor. Implementiere erstmal die PWM und die > Istwerterfassung mit Hilfe eines echten Motors. Implementiere dann den > Regler, z.B. schau dir mal Application Note AVR221 an, ein prima PID > Regler. Sollwerte kannst du ja mit dem Taster setzen und den Regler > testen. > > Gehe dann an die Kommunikation ran. V-USB saugt ne Menge Resourcen, > deswegen ist vllt ein FT232 oder eine ähnliche Lösung das einfachste, > zumal dann jeder Mac, Linux- oder M$ Rechner mit dem Teil kommunizieren > könnte. danke ! das werde ich mal machen. wobei die PWM erzeugung hja wirklich einfach ist und das habe ich ja schon gemacht...
Tobi L. schrieb: > klar kenn ich RS2323 nur versthe ich nicht was mir diese wandlung direkt > bringen soll statt usb eine UART zu nehmen. 1.) Weil es sehr einfach funktioniert. 2.) Weil es praktisch keine Ressourcen braucht. > aber wenn ich die ISTdrehzahl zurücksende habe ich doch genau das selbe > problem wieder Oo oder nicht? Was soll daran Probleme machen? Dein Problem ist hier das V-USB.
Klaus Dieter schrieb: > Tobi L. schrieb: >> das ahbe ich mir auch schon überlegt aber wie weiss ich dann ob das >> device noch auf meine sollwert regelungen reagiert? > > Wo ist das Problem? Du schickst einen Sollwert, der µC antwortet mit > einem ACK. Wenn dir das nicht reicht, kann dir der Controller sogar noch > melden, wenn der Sollwert erreicht ist, wenn er nicht erreicht werden > konnte (PWM auf Vollgas und Drehzahl trotzdem zu niedrig), wie auch > immer. wie gesagt aber dann habe ich doch wieder den selben fehler..... wenn er nicht mit einem ack antwortet^^
Tobi L. schrieb: > Klaus Dieter schrieb: >> Tobi L. schrieb: >>> das ahbe ich mir auch schon überlegt aber wie weiss ich dann ob das >>> device noch auf meine sollwert regelungen reagiert? >> >> Wo ist das Problem? Du schickst einen Sollwert, der µC antwortet mit >> einem ACK. Wenn dir das nicht reicht, kann dir der Controller sogar noch >> melden, wenn der Sollwert erreicht ist, wenn er nicht erreicht werden >> konnte (PWM auf Vollgas und Drehzahl trotzdem zu niedrig), wie auch >> immer. > > wie gesagt aber dann habe ich doch wieder den selben fehler..... wenn er > nicht mit einem ack antwortet^^ Vergiss es einfach, ok? Da ist ja nicht zum aushalten.
>> aber wenn ich die ISTdrehzahl zurücksende habe ich doch genau das selbe >> problem wieder Oo oder nicht? > Was soll daran Probleme machen? Dein Problem ist hier das V-USB. ok ich habe gedacht du meinst IST-Drehzahl zurücksenden per VUSB...
> danke ! das werde ich mal machen. wobei die PWM erzeugung hja wirklich > einfach ist und das habe ich ja schon gemacht... jaja alles einfach schon klar. Es geht nicht um die PWM Erzeugung sondern um die REGELUNG DER DREHZAHL. Das ist doch eigentlich das komplexe (wenn es da überhaupt sowas gibt) an deiner Arbeit. Und wenn dies mal geht, muss dem Controller nur noch die SOLL Drehzahl mitgeteilt werden. Geh doch mal systematisch vor und implementiere die Teilaspekte unabhängig voneinander. Und Teste jeden Teilaspekt separat. Du hast ja noch nichtmal die Lichtschranke, gibts Taktsignale mit dem Taster, erzählst aber das PWM wär ja alles einfach. gruß cyblord
Tobi L. schrieb: > klar kenn ich RS2323 nur versthe ich nicht was mir diese wandlung direkt > bringen soll statt usb eine UART zu nehmen. Was dir das bringt? Ganz einfach, du kannst dich dann erstmal auf wesentliche Dinge konzentrieren, deine Regelung. Und wenn das alles funktioniert, kannst du ja immernoch auf V-USB wechseln. Oder noch besser die 5 € für nen TF232 ausgeben. Tobi L. schrieb: > ok ich habe gedacht du meinst IST-Drehzahl zurücksenden per VUSB... Nein, das war bisher nur deine Idee.
Floh schrieb: > Meine Meinung: > V-USB würde ich niemals für eine Bachelorarbeit verwenden. > Auf der V-USB-Seite wird eindeutig darauf hingewiesen, dass mehrere > Dinge der USB-Spezifikation verletzt werden. > Somit ist die V-USB-Lösung eine sicherlich angenehme Lösung für > Basteleien (Hab hier selbst 2 am Laufen), aber für richtige Entwicklung > gehört entweder ein USB-RS232-Umsetzer (z.B. ftdi) oder direkt ein > Controller mit USB-Schnittstelle (z.B. mega32u4, at90usb...) her. > Diese Bausteine laufen dann zuverlässig und das Timing ist recht > unkritisch, da dies die Hardware übernimmt. 100%ige Zustimmung. Solange es noch geht würde ich auf einen der genannten Prozessoren umsteigen. ATmega32U4 oder AT90USB sind eigentlich gut erhältlich. Sogar fertige Bibliotheken gibt es dafür. Oder eben einen FT232 dazwischen hängen. Das funktioniert praktisch sofort und ist sehr einfach anzusteuern. Bei mir hat damals das VUSB nicht so gut funktioniert, mache da seitdem einen großen Bogen drum.
Tobi, mal ganz im Ernst, du musst mal darauf hören, was die leute dir sagen. Es ändert sich nichts an deiner Arbeit, ob du nun VUSB, RS232->TTL oder FT232 verwendest. Alles bleibt prinzipiell bei USB... Im Gegensatz zu den Vorrednern finde ich, ob eine Regelung mit dem PC oder mit dem MC gemacht wird. Beides sind die gleichen Algorithmen, nur die Implementierung beim PC ist durch die vereinfachte Debug-Funktion schneller... Mit besagten RS232->TTL habe ich mal eine Kommunikation hergestllt, wo alle 0,02 Sekunden ein Datenpaket an den PC geschickt wurde und dort ausgewertet wurde. Also das ist dann nicht mehr das Problem. Und die eigentliche Regelung auch nicht. Ist zwar mit Hirnschmalz verbunden. Aber ich denke, daran sollte es nicht scheitern... Deswegen würde ich mich einfach mal an das halten, was die Menschen dir raten
Frank schrieb: > Im Gegensatz zu den Vorrednern finde ich, ob eine Regelung mit dem PC > oder mit dem MC gemacht wird. Öh, was findest du? @Tobi: Ich implementiere bei meinen Motorreglern immer eine kleine Konsole, mit der ich Sollwerte vorgeben kann, PID Parameter online ändern kann und den aktuellen Stand der Dinge (Strommessung, Drehzahl,Sensoren) abrufen kann. Die passendsten PID Werte speichere ich ins EEPROM des AVR. Ich mache das über den USART und eine COM Schnittstelle am PC, aber nichts spricht dagegen, eine USB-USART Bridge zu nehmen. Der Lerneffekt über Regler ist dabei gross, zumal AVR221 recht gut beschreibt, was da abgeht. Ausserdem läuft die Regelung auch dann, wenn der PC abgetrennt wird, in dem Fall könntest du auch Drehzahlsollwerte über z.B. ein Poti vorgeben.
Unter einer Bachelorarbeit versteht man eine wissenschaftliche Arbeit von vergleichsweise geringerem Umfang als eine Masterarbeit, die für den Abschluss eines Bachelor-Studienganges verfasst wird. Die Bachelorarbeit dient dabei im Allgemeinen als Nachweis darüber, dass der Prüfling in der Lage ist, eine wissenschaftliche Arbeit selbständig, aber unter Betreuung zu verfassen. Nach einer Studie des Hochschul-Informations-Systems bricht in Universitäten heute jeder vierte Bachelor-Student sein Studium ab, in Fachhochschulen sogar jeder dritte. Die Abbrecherquote in den Ingenieurwissenschaften ist in den neuen Bachelor-Studiengängen erheblich höher als in den früheren Diplom-Studiengängen.
Frank schrieb: > Im Gegensatz zu den Vorrednern finde ich, ob eine Regelung mit dem PC > oder mit dem MC gemacht wird. Beides sind die gleichen Algorithmen, nur > die Implementierung beim PC ist durch die vereinfachte Debug-Funktion > schneller... Es geht gar nicht darum OB man es nun den PC oder den Controller regeln lässt. Es geht aber darum dass man sich dies überlegt und das Ergebniss eine bewusste Design-Entscheidung ist. Diese kann ich hier überhaupt nicht erkennen. Ausserdem wenn man den Titel nimmt, sollte eine USB-Motorsteuerung rauskommen, das klingt für mich danach dass am Ende eine Platine dasteht welche einen Motor steuern (=regeln) kann. Und nicht dass der PC die ganze Arbeit macht. Aus der Beschreibung kann man sich noch nichtmal sicher sein was denn nun überhaupt gemeint ist: > Die Steuerung übernimmt allerdings der PC. D.h Die Solldrehzahl wird > von PC an den Atmega8 geschickt, der macht daraus eine PWM der Motor > dreh sich, erzeugt Impulse durch die Lichtschranke, die der selbe > Atmega8 wieder abgreift und an den pc schickt, der die Solldrehzahl mit > Impulsen(istdrehzahl vergleicht)). Wenn der PC tatsächlich die Steuerung (also Regelung) übernimmt, warum sendet er dann eine SOLL Drehzal an den Controller? Es ist wahrscheinlich ein SOLL-PWM-Wert gemeint. D.h. der Controller agiert hier als dummer PWM Erzeuger. Dann weiter wird nochmal "Solldrehzahl" erwähnt, diesmal im richtigen Kontext wie mir scheint. Wie gesagt, vielleicht. Die ganze Erklärung des Projekts ist dilletantisch und unpräzise, wie es sich für eine wissenschaftliche Arbeit eigentlich gar nicht gehört. Von der Heransgehensweise mal ganz zu schweigen. gruß cyblord
:D Sorry: Aus dem PUNKT muss ein Komma gemacht werden: Beides in dem Fall dann klein ;) Aber wir sind uns ja alle einig: Er soll das Problem eingrenzen und wenn alles über eine PC-Kommunikation laufen soll, dann sollte diese stabil sein. Man kann in der Bachelorarbeit ja auch erwähnen, dass die erste Idee VUSB war. Aufgrund der Versuchsproblemen wurde allerdings eine andere Möglichkeit gewählt. Und dann kannst du generell ein Kapitel machen, wo du abwägst, was sinnvoll ist und was nicht, und warum. Das verstehe ich unter wissenschaftlichem Arbeiten.
@echo schrieb: > Die Abbrecherquote in den > Ingenieurwissenschaften ist in den neuen Bachelor-Studiengängen > erheblich höher als in den früheren Diplom-Studiengängen. Wundert mich eigentlich. Im Vergleich zu dem, was eine Diplomarbeit verlangt, war alles, was ich bisher über Bachelorarbeiten hier gesehen habe, milde Sonntagsausflüge mit anschliessendem Picknick. Ich kann mir das nur so erklären, das eben viel mehr Leute Bachelors machen wollen, die früher nie auf die Idee gekommen wären, den Dipl. Ing. überhaupt anzugehen.
Matthias Sch. schrieb: > Wundert mich eigentlich. Im Vergleich zu dem, was eine Diplomarbeit > verlangt, war alles, was ich bisher über Bachelorarbeiten hier gesehen > habe, milde Sonntagsausflüge mit anschliessendem Picknick. Ich habe diesbezüglich keine abweichende Wahrnehmung :-) > Ich kann mir das nur so erklären, das eben viel mehr Leute Bachelors > machen wollen, die früher nie auf die Idee gekommen wären, den Dipl. > Ing. überhaupt anzugehen. Ja. Daher sind Gründe und Motivationslage der Kandidaten unter die Lupe zu nehmen. Nichtsdestoweniger bekommt die Industrie genau das, was sie vehement verlangt hat.
Matthias Sch. schrieb: > Ich kann mir das nur so erklären, das eben viel mehr Leute Bachelors > machen wollen, die früher nie auf die Idee gekommen wären, den Dipl. > Ing. überhaupt anzugehen. Was dieser Thread hervorragend belegt! Hier scheitert einer an einem Miniprojekt, das fachfremde Hobby-Bastler mit den vielen Bsp. problemlos umsetzen. In ein paar Tagen bekommt er seinen letzten Schein und wir hören später von der mangelnden Fachkompetenz deutscher Ings. @Tobi Bitte um Verlängerung und gehe das Ganze "wissenschaftlich" an.
also nachdem hier mehrfach der FT232 angesprochen worden ist habe ich mir den mal angeschaut......Wobei ich sagen muss ich habe ihn eher nur überflogen als "inteensiv studiert" sehe ich es richtig, dass ich für meine zwecke denFT232 mit dem USBPORT verbinden kann und dann als schnittstelle für den Atmega8 nur die RX TX leitungen, also die UART brauche? ich also ins 6pins habe zum anschliessen und der FT232 kein eingenes Programm brauche? und ich dann einfahh über die UART des ATMEGA8 Mit USB kommunizierren kann? sry wenn die Frage doof ist aber ich bin a) nervlich am ende und nach meiner 3 nachtschicht und ins 5 Schlaf in 3 Tagen einfach nur am Ende...
Ja, genau so ist es. Das einzige "Programm", was du brauchst ist der Treiber auf dem Rechner. Geh doch erst mal schlafen, so kann doch kein Mensch arbeiten. Du kannst dich doch nicht während deiner Arbeit selbst so fertig machen. Wie soll das denn ausgehen?
Simon K. schrieb: > Ja, genau so ist es. Das einzige "Programm", was du brauchst ist der > Treiber auf dem Rechner. > > Geh doch erst mal schlafen, so kann doch kein Mensch arbeiten. Du kannst > dich doch nicht während deiner Arbeit selbst so fertig machen. Wie soll > das denn ausgehen? das weiss ich nicht aber seit einer woche sind schlaftablette und beruhingstab meine besten freunde^^ der treiber auf dem rechner ist dann mein hostprogramm richtig? kann ich denn mein altes host programm weiternutzen oder muss ich es umschreiben(die IDvendor und IDProduct vectoren angleich zb)? oder was meinst du mit dem treiber? wenn ja wo finde ich ihn...habe leider nichts gefunden
Den Treiber findest du auf der FTDI Homepage. Da hast du die Wahl zwischen einem Direkttreiber (D2XX oder so) und einem Virtual COM Port Treiber. Mit dem ersten bekommst du eine DLL, worüber du den FT232 ansprichst und mit dem virtuellen COM Port geschieht die Ansteuerung über eine emulierte COM Schnittstelle (Windows API zB mit CreateFile, ReadFile, WriteFile). Wenn du aber die tatsächliche Arbeit schreibst, würde ich das etwas ordentlicher machen, als du das hier tust ;-)
Mit dem FTDI musst du nicht intensiver beschäftigen, nimm doch erstmal ein fertiges Modul. Treiber installieren, einstecken. Dann bekommst du einen virtuellen ComPort und kannst sofort loslegen. Es gibt auch noch andere USB->RS232 Chips, z.B. den CP2102. Funktionieren im Endeffekt alle gleich. http://www.ebay.de/itm/CP2102-Module-Modul-USB-to-TTL-Converter-Konverter-CP2102-RS232-/140631736808?pt=DE_Technik_Computerzubeh%C3%B6r_Kabel_Adapter&hash=item20be4e01e8 > kann ich denn mein altes host programm weiternutzen oder muss ich es > umschreiben(die IDvendor und IDProduct vectoren angleich zb)? Und du sagst du kennst dich mit RS232 aus? Was verstehst du an dem "Es emuliert einen COM Port" nicht? > der treiber auf dem rechner ist dann mein hostprogramm richtig? Ein Treiber ist ein Treiber. > oder was meinst du mit dem treiber? wenn ja wo finde ich ihn...habe > leider nichts gefunden Den Treiber für den Virtuellen Comport. Je nach Chip gibts einen Treiber (unter Win7 braucht man oft auch keinen) der diesen virtuellen Com Port installiert. Wieso ist bei dir alles immer so kompliziert und jede Kleinigkeit ein riesen Problem? Ich wäre schon vor Tagen in den MediaMarkt losgezogen und hätte mir ein USB->RS232 Kabel für horrende 19,95 gekauft, eingesteckt und wäre fertig. Sogar ohne Pegelwandler kann man mit 2 Transistoren damit eine Kommunikation aufbauen. CD mit Treibern ist sogar dabei. Solange denkst du noch über die Treiber und die Vendor_ID nach. Kein Wunder wird das bei dir nix. gruß cyblord
mein pproblem ist dass ich als hostsoftware java nutze und ich unter java keine anständige verbindung zu einem comport habe
Tobi L. schrieb: > mein pproblem ist dass ich als hostsoftware java nutze und ich unter > java keine anständige verbindung zu einem comport habe Die Java Communications API gefällt dir wohl nicht?
Hier der direkte Download für die RXTX lib für java: http://rxtx.qbang.org/wiki/index.php/Download Ich weiß aber auch nicht ob dein Host-Programm im Moment dein vordringlichstes Problem ist. Solltest du nicht erstmal die Hardware in Angriff nehmen und vorerst eben mit einem einfachen Terminalprogramm Daten an diese Senden und Empfangen? gruß cyblord
Nur so als kleine Geschichte: Habe selbst in meinem Praxissemester eine Software von einem seriellen auf ein USB-Board umgeschrieben. Die Firmware auf dem neuen Controller ist dabei eigentlich der angenehme Teil. Richtig blöd wird erst die Treibergeschichte, unterschiedliche Betriebssysteme, 32 und 64bit Systeme, und es soll gefälligst überall laufen. Da ist seriell einfach nur schön, einstecken, COM-Port aussuchen und losgehts, da den PC nicht interessiert, was da genau dranhängt. Daher kommen auch die vielen Ratschläge, einfach einen USB-Seriell-Wandler zu nehmen, ob als fertig kaufbares Gerät oder in Form eines einbaubaren ICs ist ja egal.
Vielleicht liegt Dein momentanes Problem auch an Deinem Java Programm auf Deinem Rechner!?
cyblord ---- schrieb: > Hier der direkte Download für die RXTX lib für java: > http://rxtx.qbang.org/wiki/index.php/Download > > Ich weiß aber auch nicht ob dein Host-Programm im Moment dein > vordringlichstes Problem ist. Solltest du nicht erstmal die Hardware in > Angriff nehmen und vorerst eben mit einem einfachen Terminalprogramm > Daten an diese Senden und Empfangen? > > gruß cyblord daten per uart hab ich schon gesendet^^ an einen pc
Tobi L. schrieb: > daten per uart hab ich schon gesendet^^ an einen pc Na also dann sollte dieses Problem ja nun gelöst sein.
Eine Idee schrieb: > Vielleicht liegt Dein momentanes Problem auch an Deinem Java Programm > auf Deinem Rechner!? berechtigte Idee habe ich natürlich auch schon gedacht und bis vor einer sekunde dachte ich dass es funtkioniert..... hört sich vll doof an Aber folgendes...zu testzwecken habe ich infach mal folgenden COde kompiliert und laufen lassen..... und dort hängt sich das device ebenso auf
Tobi L. schrieb: > Eine Idee schrieb: >> Vielleicht liegt Dein momentanes Problem auch an Deinem Java Programm >> auf Deinem Rechner!? > > berechtigte Idee habe ich natürlich auch schon gedacht und bis vor einer > sekunde dachte ich dass es funtkioniert..... > > hört sich vll doof an Aber folgendes...zu testzwecken habe ich infach > mal folgenden COde kompiliert und laufen lassen..... > > und dort hängt swich das device ebenso auf Welcer Code denn? Hast vergessen. Ansonsten, hast du mir vorher mal klar gemacht, was der Controller tun soll? Was ist seine Aufgabe. Welche Daten bekommt er dazu rein. Welche Daten schickt er dazu raus? Das musst du dir erstmal klar machen. Und wenn deine serielle Kommunikation mal steht, kann man damit gleich noch wunderbar den Rest debuggen. Deshalb mache ich dies auch immer als erstes. Und dazu eignet sich dann ein Terminalprogramm (ich nehme putty) sehr gut weil man da einfach beliebge Daten vom Controller aus schicken kann ohne dass es auf der PC Seite einer Auswertung bedarf. gruß cyblord
Tobi L. schrieb: > ...zu testzwecken habe ich infach > mal folgenden COde kompiliert und laufen lassen... Welcher Code?
> Ansonsten, hast du mir vorher mal klar gemacht, was der Controller tun
meine natürlich "hast du DIR das schonmal klargemacht"
Eine Idee schrieb: > Tobi L. schrieb: >> ...zu testzwecken habe ich infach >> mal folgenden COde kompiliert und laufen lassen... > > > Welcher Code? folgede code sry hab ihn wohl nicht anghöngt
cyblord ---- schrieb: > Hmmm > > woran siehst du dass er sich aufhängt? ich lass mir daten zurückschicken uint8_t g =0; usbMsgLen_t usbFunctionSetup(uchar data[8]) { usbRequest_t *rq = (void *)data; static uchar dataBuffer[4]; /* buffer must stay valid when usbFunctionSetup returns */ if(rq->bRequest == VENDOR_RQ_READ_BUFFER){ /* echo -- used for reliability tests */ if(g==30){g=0;}else{g=g+1;} dataBuffer[0] = 1; dataBuffer[1] = 2; dataBuffer[2] = g; dataBuffer[3] = 4; usbMsgPtr = dataBuffer; /* tell the driver which data to return */ return 4; das g wird mit jedem aufruf inkrementiertbis 30 und fängt dann von neuem an....konkret liegt mein problem daran dass ich iwann immer nur noch den selben werd zurückbekomme beim aufruf und keine neuen werte
so wie es aussieht ist nichg meine firmware das problem sondern meine hostsoftware. ich habe nämlich mal ein miniabgewandeltes beispiel von vusb kompiliert ohne interruot ohne pwm usw... und dort macht er den selben scheiss... edn kompilierten code poste ich nachher
Ein guter Rat: Leg dich erstmal schlafen. Nach einem Nickerchen sieht man oft Sachen, die vorher einfach untergingen. Aber schön, das du der Sache langsam auf die Spur kommst. Ich habe hier ein V-USB Adapter für ein altes 12"x12" Grafiktablett, wo per Interrupt richtig viele serielle Daten durchgeschaufelt werden, ohne das da irgendwas hakt. Vielleicht hilft dir der Code? http://www.schoeldgen.de/avr/ Ganz unten auf der Seite.
Ich habe es mir angetan und diesen langen Thread ueberflogen. Meine Meinung: 1. Mit der Rechtschreibung wird das gar nichts. Tobi L. schrieb: > Aber ich wiederhole mich gerne wieder...Ich wusste nicht, > dass es im Forum hier auf 100%tig richtige Rechtschreibung drauf > ankommt. Du weisst seit diesem Beitrag, dass es so ist und ignorierst es trotzdem. Leute mit Ahnung ignorieren Dich, wenn Du Ihnen so kommst. Der Compiler sowieso. 2. Wenn ich diese "Arbeit" zu pruefen und zu bewerten haette, dann wuerde ich als Allererstes eine nachvollziehbare Begruendung verlangen, warum der PC die Regelung machen soll. Da ist regelungstechnisch schlicht falsch. 3. Die hier gezeigte Herangehensweise zur Fehlersuche ist eines studierten Technikers (und das solltest Du am Ende des Studiums sein) unwuerdig. Da ist nicht einmal ansatzweise ein strukturiertes zielgerichtetes Vorgehen zu erkennen. Nimm das Ganze Schritt fuer Schritt in Betrieb, der naechste Schritt kommt erst, wenn der vorherige abgeschlossen und fehlerfrei ist. citb
Als ersters fällt mir gleich das ins Auge: >> static uchar dataBuffer[4]; /* buffer must stay valid when >> usbFunctionSetup returns */ Soweit meine C-Kentnisse gehen ist das nicht der Fall. du definierst "dataBuffer" in der usbFunctionSetup. Wenn die Funktion nun mit return verlassen wird wird auch die Varaible entfernt, oder? Zumindest ist das am PC so. V-USB übergibt die Daten erst bei den nächsten usbPoll() wenn die usbFunctionSetup schon längst verlassen wurde. Am besten einfach den dataBuffer einmal global definieren damit er zur Laufzeit immer gültig ist.
Hugo Portisch schrieb: > Als ersters fällt mir gleich das ins Auge: >>> static uchar dataBuffer[4]; /* buffer must stay valid when >>> usbFunctionSetup returns */ > > Soweit meine C-Kentnisse gehen ist das nicht der Fall. du definierst > "dataBuffer" in der usbFunctionSetup. Wenn die Funktion nun mit return > verlassen wird wird auch die Varaible entfernt, oder? > Zumindest ist das am PC so. Nicht wenn "static" davorsteht. > V-USB übergibt die Daten erst bei den nächsten usbPoll() wenn die > usbFunctionSetup schon längst verlassen wurde. Am besten einfach den > dataBuffer einmal global definieren damit er zur Laufzeit immer gültig > ist. Nee.
hmmm interessant, interessant ich hab schon mal von einer Bachelor Arbeit gehört,die gerade einmal 20 Seiten Umfang hatte das schreiben normalerweise Abiturienten in der Zeit hin zum Abi, mehrmals als Facharbeit zu ihren Leistungskursen.... ein ehemaliger Komolitone von mir, musste auch in seiner Bachelorarbeit gerade mal eine Webseite designen, mit welcher man Produkte auswählen und in Anschluss mit einen e-shop kaufen kann.... da frag ich mich auch, was daran nun die qualizierende Arbeitsprobe sein soll, für das spätere Berufsleben..... an solchen Beispielen nun aber den Bachelortitel schlecht zu reden, halte ich für unprofessionel.. zumal ich auch Diplomarbeiten kenne, die in Niveau sicher das eigentliche Ziel einer Abschliessenden und qualifizierenden Arbeitsprobe verfehlen.... generelle liegt der Bachelor Rang heute auf dem Niveau eines Dipl. Ing. FH. Master ist da dann Dipl. Ing. Uni also jeder der hier nicht seine Diplpomarbeit an der Uni geschrieben hat, sollte schauen, wie weit es her ist mit dem seiner Minderwertigkeitskomplexe! die Qualität der Hochschulen zuwweil ist ein Merkmal, welches grundlegendd geprüft werden sollte, bei Universitäten so wie bei ehemaligen Fachhochschulen! ich kenne da derzeit einen Studenten, der an einer Uni studiert, aber mit verlaub,.... Dumm ist er zwar nicht, aber mithalten mit jenen die ich von der FH nun kenne, kann er nicht. . . da fehlt es in einfach an Ausbildungsqualität... zu Bachelorarbeiten,,,... wisst ihr,, es gibt auch Professoren, die sehr viel Wert auf diese legen, da hat dann eine Bachelorarbeit auch mal einen Umfang von 120 Seiten und inclusive Vorbereitungsphase und Durchführungsphase kommt man auf einen Zeitanspruch von mal schnell 7 Monate.... (Das verlangen die Professoren dann auch so, sie erwarten dann, das der Kandidat sich sein Thema 3 bis 4 Monate vor Anmeldezeitpunkt abholt und sich einarbeitet, bevor er mit der eigentlichen Arbeit beginnt) sicher ist das jetzt nicht so ein Quatsch, wie nun, "Testen wir mal ob der Kandidat zu blöd ist eine USB Schnittstelle auszulesen!" als Thema das aber kann sich jeder Student selber aussuchen,.... letztenendes ist nämlich heute mehr denn je der Student seines eigernen Huf's Schmied
Tom K. schrieb: > Tom, der nach einem Projekt von allen V-USB-Ambitionen geheilt ist. Simon K. schrieb: > AVR-USB ist meiner Meinung nach eher Pfusch (mir fällt gerade kein > besseres Wort ein). Nicht, dass du damit noch Probleme bekommst (auch > zeitlich). Könnt ihr mal ein bisschen mehr über eure Erfahrungen schreiben, die euch zu diesen Aussagen verlassen?
Profi schrieb: > Der Tobi erstellt eine wissenschaftliche Abschlussarbeit. Seine > Vorgehensweise ist dabei nicht sehr wisenschaftlich. Das sieht eher nach > Versuch und Irrtum aus. > > Wenn ihm die Lösung - wie Marc es wünscht - hier vorgegeben wird, > entspricht das nicht dem Sinn und Zweck der Abschlussarbeit. Ein Prof., > der ein solches Thema vergibt, liest hier bestimmt nicht mit. Tobi > "Gutenberger" wird mit den fremden Federn punkten. Im Berufsleben wird > er schnell als Blender auffliegen. Um Tobi zu helfen, muss man ihn > ermutigen, sich wissenschaftlich dem Problem zu nähern. Ändert aber, wenn man es logisch betrachtet, nichts an meiner Aussage. Ein Forum dient dazu, andere zu helfen. Punkt. Es ist kein Zeichen von Weisheit oder Überlegenheit, sich überheblich und präpotent in Internet-Foren zu benehmen. Es ist niemands Aufgabe oder Recht, über andere Urteil zu machen, oder ihre Arbeit fertig zu machen. Das machen nur Loser mit Selbstbewusstsein-Problemen. Warum nicht einfach was besseres mit seiner Zeit tun? Warum sich einloggen, nur um andere fertig zu machen? Fühlt man sich echt so viel besser wenn man andere so kindisch beurteilt, statt zu helfen? Noch eine kleine Erklärung für diejenigen, die erstmal eine Meinung bilden, ohne sich gescheit zu informieren: ein Bachelor-Abschluss wurde noch niemals als Ersatz für den Diplom-Abschluss beabsichtigt. Erst den Master-Abschluss kann man als gleichwertig mit dem Dipl.-Ing. sehen. Darum scheinen Bachelor-Arbeiten eher "einfach". Ihr solltet den Bachelor nicht fertig machen. Wenn ihr euch mit eurem Dipl.-Abschluss bedroht fühlt, und das ist ja ziemlich offensichtlich von euren Posts her, dann sorgt dafür, dass ihr euch auf dem Laufenden in eurer Bildung haltet. Andere in Internet-Foren fertig zu machen ist ein unglaublich kindischer und lächerlicher Versuch, sich zu bestätigen. Wer nicht helfen will sollte nicht noch extra aufm Weg stehen.
Michael K. schrieb: > Tom K. schrieb: >> Tom, der nach einem Projekt von allen V-USB-Ambitionen geheilt ist. > > Simon K. schrieb: >> AVR-USB ist meiner Meinung nach eher Pfusch (mir fällt gerade kein >> besseres Wort ein). Nicht, dass du damit noch Probleme bekommst (auch >> zeitlich). > > Könnt ihr mal ein bisschen mehr über eure Erfahrungen schreiben, die > euch zu diesen Aussagen verlassen? Es ist eben Software-USB und allein aus der Tatsache heraus, dass ein AVR für echtes Soft-USB zu langsam ist (und die Idee "Soft-USB" nebenbei auch hirnrissig ist), ist eben nur das allernötigste an USB-Gerümpel dort implementiert. Das Projekt sagt (wie oben schon gesagt) selber, dass bestimmte Teile der USB-Spezifikation verletzt werden. Von daher ist keine 100%ige Funktion garantiert. Auch wenn das bei vielen Leuten problemlos läuft, ist es eben keinen Beweis für die einwandfreie Funktion. Erschwerend kommt hinzu, dass Mikrocontroller (auch 8-Bit AVRs) mit integrierter Hardware-USB Schnittstelle eigentlich überhaupt nicht nennenswert teurer sind, auf der anderen Seite jedoch die USB Spezifikation vollständig erfüllen. Von daher gibt es für mich(!) überhaupt kein sinnvolles Argument, sich mit dem AVR-USB für ernsthafte Projekte (und da zähle ich eine BA auch drunter) herumzuschlagen. Wenn man so will, könnte man sagen, dass das, was man bei der Implementierung eines AVR-USB lernt, im Berufsalltag eh hinfällig ist, weil wohl niemand ein kommerzielles Projekt auf Basis des AVR-USB bauen würde. Eben deswegen, weil es im kommerziellen Umfeld um Geld und Herstellergarantien geht. Da braucht niemand etwas, was bewusst Spezifikationen verletzt. PS: Zu der Sache mit FH/Uni kann ich immer nur den Kopf schütteln. Im Ausbildungs-Subforum geht es mit dem Thema ja auch heiß her. Ich kann nur eins dazu sagen: Die pauschalen Aussagen sind einfach zu pauschal um überall in Deutschland zutreffen zu können. Ich habe vor kurzem ein FH Bachelor Studium abgeschlossen (Gelsenkirchen) und fand es sehr angenehm, da ich schon mit jungen Jahren an Mikrocontrollern herumgebastelt habe. Dann habe ich ein Master Studiengang an der Uni (Ruhr Uni Bochum) aufgenommen und komme dort eigentlich sehr gut zurecht und kann mich in keinster Weise beschweren.
Marc O.S. schrieb: > Ein Forum dient dazu, andere zu helfen. Punkt. Es ist kein Zeichen von > Weisheit oder Überlegenheit, sich überheblich und präpotent in > Internet-Foren zu benehmen. Und warum machst Du es dann, Marc, bist Du ein aroganter und präpotenter Loser?
Hallo Tobi. Dein code von 22:59 rennt auf meinem usbasp absturzfrei. Mit ein paar Brocken pyusb1.0
1 | i = 0 |
2 | while True: |
3 | v.ctsetup(VENDOR_RQ_WRITE_BUFFER, i % 2, 0, 0) |
4 | x = v.ctsetup(VENDOR_RQ_READ_BUFFER, 0, 0, 4) |
5 | print x |
6 | i += 1 |
ergibt sich in der Konsole bei wahnsinnig schnell blinkender LED: ... array('B', [1, 2, 22, 4]) array('B', [1, 2, 23, 4]) array('B', [1, 2, 24, 4]) array('B', [1, 2, 25, 4]) array('B', [1, 2, 26, 4]) array('B', [1, 2, 27, 4]) array('B', [1, 2, 28, 4]) array('B', [1, 2, 29, 4]) array('B', [1, 2, 30, 4]) array('B', [1, 2, 0, 4]) array('B', [1, 2, 1, 4]) array('B', [1, 2, 2, 4]) array('B', [1, 2, 3, 4]) array('B', [1, 2, 4, 4]) array('B', [1, 2, 5, 4]) array('B', [1, 2, 6, 4]) array('B', [1, 2, 7, 4]) array('B', [1, 2, 8, 4]) array('B', [1, 2, 9, 4]) array('B', [1, 2, 10, 4]) array('B', [1, 2, 11, 4]) array('B', [1, 2, 12, 4]) array('B', [1, 2, 13, 4]) array('B', [1, 2, 14, 4]) array('B', [1, 2, 15, 4]) array('B', [1, 2, 16, 4]) array('B', [1, 2, 17, 4]) array('B', [1, 2, 18, 4]) array('B', [1, 2, 19, 4]) array('B', [1, 2, 20, 4]) array('B', [1, 2, 21, 4]) array('B', [1, 2, 22, 4]) array('B', [1, 2, 23, 4]) array('B', [1, 2, 24, 4]) array('B', [1, 2, 25, 4]) array('B', [1, 2, 26, 4]) ... Hat was von einem VW-Käfer: Läuft und läuft und läuft. Noch mal was zu VUSB: Allzu schlecht ist dies auch nicht. Der avrcdc232 funktioniert auf meinem Arbeitsplatzrechner unter Windows XP überhaupterstmal, wohingegen der billigste Reichelt USB-RS232-Adapter mit Prolific Chipsatz nicht mal ansatzweise sein Werk verrichtet. Und das einzigste USB-Gerät an meinem Arbeitsplatz, das noch nie abgestürzt ist, ist ein VUSB-basierter IR-Sender, welcher zu allem Überfluss noch an einer 3m-Strippe hängt, die ihrerseits durch eine 5m-Verlängerung billigster Machart mit einem HUB verbunden ist.
Simon K. schrieb: > Erschwerend kommt hinzu, dass Mikrocontroller (auch 8-Bit AVRs) mit > integrierter Hardware-USB Schnittstelle eigentlich überhaupt nicht > nennenswert teurer sind, auf der anderen Seite jedoch die USB > Spezifikation vollständig erfüllen. > > Von daher gibt es für mich(!) überhaupt kein sinnvolles Argument, sich > mit dem AVR-USB für ernsthafte Projekte (und da zähle ich eine BA auch > drunter) herumzuschlagen. also ich habe gestern in der nacht(weil ich mal wider nicht schlafen konnte) nach Beispielen oder Code für einen USBAVR (also die AVR mit integierten USB-CHIP)geschaut und leider nach, ich nenn es mal "intensiveres überfliegen" keinen (größeren)COde gefunden. nur eine webseite einer privat person die an sich auch gut aufgebaut ist aber auf der ich keine richtigen vollständigen beispiel code gefunden habe. Ich kann immer am besten mit Hilfe von beispielen und lernen und das geht nunmal nur mit Code. aus
Marco S schrieb: > Hallo Tobi. > > Dein code von 22:59 rennt auf meinem usbasp absturzfrei. Mit ein paar > Brocken pyusb1.0i = 0 > while True: > v.ctsetup(VENDOR_RQ_WRITE_BUFFER, i % 2, 0, 0) > x = v.ctsetup(VENDOR_RQ_READ_BUFFER, 0, 0, 4) > print x > i += 1 > > ergibt sich in der Konsole bei wahnsinnig schnell blinkender LED: > > array('B', [1, 2, 15, 4]) > array('B', [1, 2, 16, 4]) > array('B', [1, 2, 17, 4]) > array('B', [1, 2, 18, 4]) > > Hat was von einem VW-Käfer: Läuft und läuft und läuft. > > > Noch mal was zu VUSB: Allzu schlecht ist dies auch nicht. Der avrcdc232 > funktioniert auf meinem Arbeitsplatzrechner unter Windows XP > überhaupterstmal, wohingegen der billigste Reichelt USB-RS232-Adapter > mit Prolific Chipsatz nicht mal ansatzweise sein Werk verrichtet. Und > das einzigste USB-Gerät an meinem Arbeitsplatz, das noch nie abgestürzt > ist, ist ein VUSB-basierter IR-Sender, welcher zu allem Überfluss noch > an einer 3m-Strippe hängt, die ihrerseits durch eine 5m-Verlängerung > billigster Machart mit einem HUB verbunden ist. das problem ist auch dass dercode bei mir läuft...für 10min, für 1 std für 30 sek...... immer unterschiedlich aber ich finde es sehr gut dass sich ma langsam leute meienn code anschaun (und ihn anscheinend auch verstehen was ich und warum ich es mache)
Profi schrieb: > Marc O.S. schrieb: >> Ein Forum dient dazu, andere zu helfen. Punkt. Es ist kein Zeichen von >> Weisheit oder Überlegenheit, sich überheblich und präpotent in >> Internet-Foren zu benehmen. > > Und warum machst Du es dann, Marc, bist Du ein aroganter und präpotenter > Loser? ICH hatte bei Marc NICHT den Eindruck, dass er überheblich ist,sondern er einfach nur helfen will! was man von einzelnen hier nicht behaupten kann.
@Tobi: Ich rate dir, dich erstmal nicht zu sehr an der Kommunikation festzubeissen. Dein wichtigstes Ziel ist es doch, den Motor zu regeln. Such dir einen Motor mit Sensor und implementiere dann die Regelung. Wie du mit dem PC kommunizierst, kannst du dir überlegen, wenn der Motor dreht und du einen Überblick über seine Drehzahl hast usw. Ob du dann nochmal an V-USB rangehst, oder doch eine USART-USB Bridge nimmst, wird sich evtl. sogar ganz zwanglos ergeben. Der grosse Nachteil an V-USB ist eben, das er den kleinen AVR schon ganz schön beschäftigt, während doch eigentlich die Motorregelung sein Hauptjob wäre. In meinen Projekten läuft z.B. die Motorsteuerung komplett in Interrupts, die Hauptschleife bedient nur die Konsole. Mein Code ist für dich allerdings sinnlos, da ich hier BLDCs steuere. Und schau nochmal nach Pufferüberläufen, siehe meinen Post ganz oben.
Simon K. schrieb: > Von daher ist keine 100%ige Funktion garantiert. Auch wenn das bei > vielen Leuten problemlos läuft, ist es eben keinen Beweis für die > einwandfreie Funktion. Marco S schrieb: > Noch mal was zu VUSB: Allzu schlecht ist dies auch nicht. Der avrcdc232 > funktioniert auf meinem Arbeitsplatzrechner unter Windows XP Is schon schwierig ;-)
[zitat von mark o.s.] Noch eine kleine Erklärung für diejenigen, die erstmal eine Meinung bilden, ohne sich gescheit zu informieren: ein Bachelor-Abschluss wurde noch niemals als Ersatz für den Diplom-Abschluss beabsichtigt. Erst den Master-Abschluss kann man als gleichwertig mit dem Dipl.-Ing. sehen. Darum scheinen Bachelor-Arbeiten eher "einfach". Ihr solltet den Bachelor nicht fertig machen. Wenn ihr euch mit eurem Dipl.-Abschluss bedroht fühlt, und das ist ja ziemlich offensichtlich von euren Posts her, dann sorgt dafür, dass ihr euch auf dem Laufenden in eurer Bildung haltet. Andere in Internet-Foren fertig zu machen ist ein unglaublich kindischer und lächerlicher Versuch, sich zu bestätigen. Wer nicht helfen will sollte nicht noch extra aufm Weg stehen. [zitat ende] :) das erklär mal den Personalern dieser Welt :) ich arbeite in einen grossen Unternehmen, dort ist der Bachelor stellvertretend für das Dipl Ing (FH) <-- kürzel in Klammerrn hat eine Bedeutung, jemand der sein Diplom an der FH gemacht hat, muss dieses normalerweise mit angeben, wenn es verlangt wird der Master ersetzt das Dipl Ing (UNI) Bedeutet Dipl Ing an der Universität erworben war noch nie in allen Zeiten das selbe wie ein dipl Ing welches an der FH erworben wurde deine Aussage die du triffst, qualifiziert dich in sofern als Realitätsfern.... es gibt sicher auch Schulen wo Bachelorarbeiten angeboten werden, die inhaltlich ein Witz sind, das gab es aber schon immer auch zu Diplomszeiten hihi,, was den Arbeitsumfang angeht von solchen Abschlussarbeiten, sehr ernüchternd wirkt da manche Doktorarbeit, in der Medizin gibt es welche mit auch grad mal ein 20 Seitenumfang das ist dort eher eine Abschlussarbeitsabfertigung, hauptsache, der Aspirant verschwindet aus den Blickfeld... darüber hinaus, in einigen deiner Punkte geb ich dir sogar recht.... du musst dir aber auch eingestehen, das andere auch zu einen gewissen grad recht haben... mir geht auch regelrecht der Hut hoch, wenn Leute auf der Arbeit ein grosses Mundwerk haben und dann sich in Anschluss die Arbeit von armen Forenteilnehmern machen lassen.... und der Threadstarter machte diesen Eindruck ausserdem auch so, das man annehmen muss, das er seine Aufgabe nicht verstanden hat... aber wie auch immer mich würde ja interessieren, an welcher FH er studiert (ich schätze mal das es keine UNI ist) hier gibt es viele Hochschulen, welche in Listen bei Personaler verzeichnet sind, wennn er an einer FH studiert mit negativen Ranking, und da nicht eine sehr gute Bachelorarbeit schreibt, und zu solchen hat der Threadstarter viele Tips bekommen, wird er sich später schwer tun, Arbeit zu bekommen..... und erzähl mir jetzt bitte nicht das es solche Listen nicht gibt :D den Bacheloren aus diesem Thread kann ich da nur raten, sich anzustrengen und die notwendige Fachliteratur zu lesen, denn spätestens in einen Mündlichen Kolloquium fällt der Schwindel auf... von wegen sich Lösungen und Lösungswege von Fremden erarbeiten lassen ....
Tobi schrieb: > ICH hatte bei Marc NICHT den Eindruck, dass er überheblich ist,sondern > er einfach nur helfen will! was man von einzelnen hier nicht behaupten > kann. Geschenkt, er sagt dir ja auch was du hören willst. Dein Problem ist, du hörst gar nicht auf das was dir alle anderen Leute hier raten. Du verbeisst dich in dein V-USB, dabei hat die Aufgabe damit noch nichtmal angefangen. Dein Schwerpunkt liegt doch ganz woanders (zumindest wenn man dem Titel glauben darf, selber scheinst du das gar nicht zu wissen wo dein Schwerpunkt liegt). Wobei dein Zitat auch eigentlich eine ziemliche Frechheit darstellt wenn ich mir diesen Thread durchlese. Da wird eigentlich durchweg versucht zu helfen. gruß cyblord
Warum spiel es hier überhaupt ein Rolle was ein Bachelor bzw. Master gegenüber DiplIng wert ist? Jemand der heute ein Studium beginnt kann es sich nicht mehr aussuchen und versuchen das beste draus zu machen. Und was Axel glaub ich eher in den Vordergrund stellen wollte war weniger der reale Unterschied zw. den Abschlüssen als vielmehr das Imponiergehabe jener mit dem DiplIng.
Marco S schrieb: > [...] wohingegen der billigste Reichelt USB-RS232-Adapter > mit Prolific Chipsatz nicht mal ansatzweise sein Werk verrichtet. Wir der erkannt? Ich hatte mal so eine China-Kopie die ging nur mit einem alten Treiber.
danke Wursti in Grunde war es das, die sogenannten Diplomingeniuere vergessen halt zu häufig das es diese Unterscheidung Bachelor / Master schon immer gegeben hat nur hiess sie FH / UNI was auch überhaupt kein Problem ist, wenn man nicht grad Physik oder Biologie studiert hat, reicht oft der Bachelor oder das Dipl Ing (FH) allemale aus Master sind da oft nicht wirklich besser gestellt.... also zumindest ist es in Machinenbau und der Elektrotechnik so ich errinnere mich, in Bauwesen wurde da fein säuberlich selektiert, wer von der uni kam und wer nicht ö.Ö da macht man den Master, wenn man später Doktor oder Führungskraft werden will, um in Anschluss in die Forschung zu gehen... da soll es ja den einen oder anderen geben der das mag, wichtiger finde ich aber hier, das durch das Bachelor Master System auch ursprünglichen Fachhochschulstudenten die Möglichkeit zu weiterführenden akademischen Ausbildungen gegeben ist das war vorher nicht unbedingt so der Fall es gibt also heute für einige Fachrichtungen defakto nicht mehr den Unterschied zwischen Uni und Fachhochschule auch wenn einige ewiggestrigen das zu meinen glauben.... ich glaube wirklich mittlerweile, das einige sich beraubt fühlen, in iher Extravagance darin hingehend etwas besonderes zu sein, weil von Universität dieses Bessermensch getue, dass geht mir mittlerweile echt auf den Senkel LG
Ich stimme einigen von euch zu... All den jenigen, die auf dem Teppich bleiben, trotz Master, Dipl.Ing., Bachelor... Ich will gar nicht wissen, wie viele Fachdeppen Elite-THs mit einem Dipl.Ing absolvieren, 23Jahre alt sind und vom Tuten und Blasen keine Ahnung haben... Da bin ich lieber Bachelor, hab nebenbei ca 4 Jahre Berufserfahrung (hautnah in der Entwicklung) und bleibe trotzdem auf dem Teppich... Und nun zur Sache: Nimm ein FTDI, lass die "Regelung" den µC machen, wie es dir hier fast jeder vorgeschlagen hat und baue ein anständiges Protokoll ein, was man eventuell erweitern kann, baue eine anständige Regelung ein, investier auf jeden Fall Zeit in andere Dinge, aber doch nicht in V-USB Libs, die irgend ein Bastler geschrieben hat... Dein Vorhaben klingt so ein wenig nach, ich darf für das Projekt nichts anderes benutzen als ein AtmegaX und V-USB.
Karl schrieb: > Ich stimme einigen von euch zu... All den jenigen, die auf dem Teppich > bleiben, trotz Master, Dipl.Ing., Bachelor... Richtig, die kochen alle nur mit lauwarmem Wasser. Vollnulpen gibts bei beiden ;-) > Da bin ich lieber Bachelor, hab nebenbei ca 4 Jahre > Berufserfahrung (hautnah in der Entwicklung) und bleibe trotzdem auf dem > Teppich... 4 Jahre habe ich noch nicht ganz, aber fast. Während des ganzen Studiums nebenbei (richtig) gearbeitet und ich sehe das auch so. Das interessiert im Job niemanden, ob B.Eng. Dipl.Ing. Hauptsache man kann was.
Vorallem sollte Tobi mal systematisch vorgehen. Andere schreiben ja, dass bei ihnen sein Programm läuft. Wenn man richtig schaut wird es sein Javaprogramm sein dass sich aufhängt. Hast Du schon mal eine norales Terminalprogramm wie HTerm o.ä. benutzt? Hat es sich dabei auch aufgehängt? Hast Du eine saubere Versorgungsspannung? Saubere Lötstellen? Temperaturprobleme hatte ich auch schon ab und zu wo sich so geäußert haben. Läuft der uC noch wenn der Fehler aufgetreten ist (evtl. Quarzprobleme)? Wenn Du all das ausschließen kannst, dann würde ich den Fehler bei VUSB suchen. Einfachster weg wäre wie schon oft gesagt ein FTDI. Innerhalb von ner halben Stunde hast Du eine zuverlässige Verbindung zum PC! Grüße
Eine Idee 2 schrieb: > Hast Du eine saubere Versorgungsspannung? naja das device ist Buspowered hängt also (ohne motor) am USB-Bus > Saubere Lötstellen? japp alle doppelt und dreifach geprüft und ich weiss wie sauberer lötstellen aussehen > Temperaturprobleme hatte ich auch schon ab und zu wo sich so geäußert > haben. die habe ich nicht der atmega läuft bei normaler zimmertemperatur und wird nichtmal warm > Läuft der uC noch wenn der Fehler aufgetreten ist (evtl. Quarzprobleme)? jap der läuft noch..hab ja auch den watchdog an und die USB-Verbindung besteht weiterhin...ausserdem kann ich noch Interrupts auslösen (per taster) und die werden mir auch (per LED)angezeigt (Die Led ist also bei jedem 2ten Tastendruck an ) nach einem reset des usb-bus (vom javaprogram per button) kann ich wieder Controle-Messages schicken.
Tobi.l schrieb: > naja das device ist Buspowered hängt also (ohne motor) am USB-Bus Ausreichend Kapazitäten vorhanden? So ne USB-Spannung kann auch ein ganz schöner Sauladen sein! Tobi.l schrieb: > ausserdem kann ich noch Interrupts auslösen (per taster) Um zu überprüfen ob er wirklich noch läuft, würde ich lieber z.B. in der Main auf den Taster pollen. Ansonsten weißt Du nur dass er von der Stelle wo er hängt in den Interrupt springt und dannach wieder zurück. Ob Dein Main zyklisch abgearbeitet wird weißt Du allerdings nicht! Tobi.l schrieb: > jap der läuft noch..hab ja auch den watchdog Wo wird der zurückgesetzt? Hoffentlich nicht in einem Interrupt? Tobi.l schrieb: > nach einem reset des usb-bus (vom javaprogram per button) kann ich > wieder Controle-Messages schicken. Hast Du nun das ganze auch schon mal mit einem normalen Terminalprogramm versucht?
Eine Idee 2 schrieb: > Tobi.l schrieb: >> naja das device ist Buspowered hängt also (ohne motor) am USB-Bus > Ausreichend Kapazitäten vorhanden? So ne USB-Spannung kann auch ein ganz > schöner Sauladen sein! die usb shematic hat ja auch dafür paar kondensatoren bereitgestellt. Glaube 1-2 normalen kondensatoren (10n,100n) und 2 elkos (4.7 uF,).... > Tobi.l schrieb: >> ausserdem kann ich noch Interrupts auslösen (per taster) > > Um zu überprüfen ob er wirklich noch läuft, würde ich lieber z.B. in der > Main auf den Taster pollen. Ansonsten weißt Du nur dass er von der > Stelle wo er hängt in den Interrupt springt und dannach wieder zurück. > Ob Dein Main zyklisch abgearbeitet wird weißt Du allerdings nicht! reicht da nicht auch eine simple LED? ausserdem sollte er in der main hängen würde dann der watchdog nicht greifen? > > Tobi.l schrieb: >> jap der läuft noch..hab ja auch den watchdog > > Wo wird der zurückgesetzt? Hoffentlich nicht in einem Interrupt? in der for(;;) Loop direkt nach dem usbpoll(); > > Tobi.l schrieb: >> nach einem reset des usb-bus (vom javaprogram per button) kann ich >> wieder Controle-Messages schicken. > > Hast Du nun das ganze auch schon mal mit einem normalen Terminalprogramm > versucht?
>> Hast Du nun das ganze auch schon mal mit einem normalen Terminalprogramm >> versucht? nein das noch nicht.
Tobi.l schrieb: >>> Hast Du nun das ganze auch schon mal mit einem normalen Terminalprogramm >>> versucht? > > nein das noch nicht. Das würde ich als erstes jetzt mal machen. Evtl. suchst Du einen Fehler in VUSB wo eigentlich in Deinem Java Programm steckt! Tobi.l schrieb: > Eine Idee 2 schrieb: >> Tobi.l schrieb: >>> naja das device ist Buspowered hängt also (ohne motor) am USB-Bus >> Ausreichend Kapazitäten vorhanden? So ne USB-Spannung kann auch ein ganz >> schöner Sauladen sein! > die usb shematic hat ja auch dafür paar kondensatoren bereitgestellt. > Glaube 1-2 normalen kondensatoren (10n,100n) und 2 elkos (4.7 uF,).... Ok...dachte nur ich Frag mal nach. Tobi.l schrieb: >> Tobi.l schrieb: >>> ausserdem kann ich noch Interrupts auslösen (per taster) >> >> Um zu überprüfen ob er wirklich noch läuft, würde ich lieber z.B. in der >> Main auf den Taster pollen. Ansonsten weißt Du nur dass er von der >> Stelle wo er hängt in den Interrupt springt und dannach wieder zurück. >> Ob Dein Main zyklisch abgearbeitet wird weißt Du allerdings nicht! > reicht da nicht auch eine simple LED? > ausserdem sollte er in der main hängen würde dann der watchdog nicht > greifen? Das kommt darauf an. Wenn Du die LED im Timer Interrupt toggelst, weißt Du nicht ob Dein Main noch zyklisch durchlaufen wird. Genauso wenn Du den Taster auf einen externen Interrupt gelegt hast und in diesem Interrupt die LED toggelst. Deshalb ja der Vorschlag mit der Main. Ob Du da die LED direkt toggelst oder über einen Schalter abfragtst und dann Toggelst ist egal (zumindest um zu prüfen ob er noch läuft). Das gleiche in Grün mit dem Watchdog! Wie soll der Watchdog erkennen dass Dein Main hängt wenn er zyklisch in einem Timerinterrupt zurückgesetzt wird!?
Tobi.l schrieb: >> Tobi.l schrieb: >>> jap der läuft noch..hab ja auch den watchdog >> >> Wo wird der zurückgesetzt? Hoffentlich nicht in einem Interrupt? > in der for(;;) Loop direkt nach dem usbpoll(); Ah, sorry...zu spät gesehen.
Mal noch ne andere Frage: Wieviel Platz braucht Dein Programm auf dem Controller? Evtl. am Limit bzw. die Optimierungen nicht eingeschalten? Heap/Stackprobleme tauchen auch ab und zu so sporadisch auf!
Eine Idee 2 schrieb: > Tobi.l schrieb: >> Eine Idee 2 schrieb: >>> Tobi.l schrieb: >>>> naja das device ist Buspowered hängt also (ohne motor) am USB-Bus >>> Ausreichend Kapazitäten vorhanden? So ne USB-Spannung kann auch ein ganz >>> schöner Sauladen sein! >> die usb shematic hat ja auch dafür paar kondensatoren bereitgestellt. >> Glaube 1-2 normalen kondensatoren (10n,100n) und 2 elkos (4.7 uF,).... > > Ok...dachte nur ich Frag mal nach. klar ! wäre ja auch eine mögliche ursache verstehe ich :-) >>> Wo wird der zurückgesetzt? Hoffentlich nicht in einem Interrupt? >> in der for(;;) Loop direkt nach dem usbpoll(); > > Ah, sorry...zu spät gesehen. macht nichts passiert mal :-P Eine Idee 2 schrieb: > Mal noch ne andere Frage: > Wieviel Platz braucht Dein Programm auf dem Controller? > > Evtl. am Limit bzw. die Optimierungen nicht eingeschalten? > Heap/Stackprobleme tauchen auch ab und zu so sporadisch auf! das hab ich noch nicht probiert kann dir nur sagen dass das hexfile auf dem pc 5 kb einnimmt. dürfte bei eibnem atmega8 also passen
Tobi L schrieb: > das hab ich noch nicht probiert kann dir nur sagen dass das hexfile auf > dem pc 5 kb einnimmt. dürfte bei eibnem atmega8 also passen lol? dafür gibts avr-size. Die Größe über die Dateigröße der Hexfile abzuschätzen ist sehr schwierig bis unmöglich. Grundsätzlich (wenn man die tatsächliche Größe in Bytes der Datei weiß) kann man dies natürlich als obere Schranke der absoluten Größe im Speicher des AVR ansehen. Aber innerhalb der Hexfile gibts Adressen, und diese könnten den Code auch ausserhalb des Speichers plazieren wollen. Ergo: Das sagt nix und man sollte daraus erst gar nix ableiten. Du musst doch wissen wieviel Flash, Ram und EEProm du so verbrauchst. Wie machst du das sonst? gruß cyblord
cyblord ---- schrieb: > Tobi L schrieb: > >> das hab ich noch nicht probiert kann dir nur sagen dass das hexfile auf >> dem pc 5 kb einnimmt. dürfte bei eibnem atmega8 also passen > > lol? > dafür gibts avr-size. Die Größe über die Dateigröße der Hexfile > abzuschätzen ist sehr schwierig bis unmöglich. Grundsätzlich (wenn man > die tatsächliche Größe in Bytes der Datei weiß) kann man dies natürlich > als obere Schranke der absoluten Größe im Speicher des AVR ansehen. Aber > innerhalb der Hexfile gibts Adressen, und diese könnten den Code auch > ausserhalb des Speichers plazieren wollen. > Ergo: Das sagt nix und man sollte daraus erst gar nix ableiten. Du musst > doch wissen wieviel Flash, Ram und EEProm du so verbrauchst. Wie machst > du das sonst? > > gruß cyblord sofern folgender befehl richtig eingegeben wurde : avr-size -x -A main.hex bekomm ich 0x644 bzw bei main.elf 0x644 was ca 1700 bzw 1600 in dez. sind
cyblord ---- schrieb: > dafür gibts avr-size. Ja, früher beim AVR Studio 4 wurde bereits unten in der Konsole ein Prozentwert angegeben. Wie das beim AVR Studio 5 ist weiß ich nicht, beim Version 4.19 fehlte es glaube ich. Evtl. müsste das noch beim Linker eingestellt werden. Naja...Atmega8 --> 8kB Flash
Hi, cyblord ---- schrieb: >> das hab ich noch nicht probiert kann dir nur sagen dass das hexfile auf >> dem pc 5 kb einnimmt. dürfte bei eibnem atmega8 also passen > > lol? > dafür gibts avr-size. Die Größe über die Dateigröße der Hexfile > abzuschätzen ist sehr schwierig bis unmöglich. Aha, bei Euch sitzt der Stack im Flash? ;-) Offensichtlich ist irgenwie immer noch nicht richtig angekommen, daß dieses V-USB doch großer Murks ist, höchstens was zum Basteln. Was zum Teufel spricht gegen ein USB-TTL-Wandler, gibts fertig zum anploppen für 6 Eumel bei CSD. Nimm gleich zwei, dann kannst Du auch gleich mitlauschen was da abgeht (mit dem RX vom zweiten und Hterm). Gruß, Norbert
Norbert S. schrieb: > Was zum Teufel spricht gegen ein USB-TTL-Wandler, gibts fertig zum > anploppen für 6 Eumel bei CSD. > > Nimm gleich zwei, dann kannst Du auch gleich mitlauschen was da abgeht > (mit dem RX vom zweiten und Hterm). > > Gruß, > Norbert liegen dann die gesamten daten an der UART an (also der Device und Config descriptor usw) oder liegen dann nachher an der UART nur meine reinen Rohdaten an weil die descriptoren und die anderen Daten vom FT2323 "geschluckt" werden?
Tobi L schrieb: >> Evtl. am Limit bzw. die Optimierungen nicht eingeschalten? >> Heap/Stackprobleme tauchen auch ab und zu so sporadisch auf! > > das hab ich noch nicht probiert kann dir nur sagen dass das hexfile auf > dem pc 5 kb einnimmt. dürfte bei eibnem atmega8 also passen mach mal avr-size auf das .elf-File Dann siehst du z.B. auch, was von vornherein im RAM liegt und dem Stack den Platz "nach unten" raubt. mfg mf
Mini Float schrieb: > Tobi L schrieb: >>> Evtl. am Limit bzw. die Optimierungen nicht eingeschalten? >>> Heap/Stackprobleme tauchen auch ab und zu so sporadisch auf! >> >> das hab ich noch nicht probiert kann dir nur sagen dass das hexfile auf >> dem pc 5 kb einnimmt. dürfte bei eibnem atmega8 also passen > > mach mal avr-size auf das .elf-File > Dann siehst du z.B. auch, was von vornherein im RAM liegt und dem Stack > den Platz "nach unten" raubt. > > mfg mf C:\bachelorarbeit>avr-size --mcu=atmega8 -C main.elf AVR Memory Usage ---------------- Device: atmega8 Program: 1604 bytes (19.6% Full) (.text + .data + .bootloader) Data: 55 bytes (5.4% Full) (.data + .bss + .noinit)
Das könnte man dann auch so ziemlich ausschließen. Wie gesagt, ich würde mal ein TERMINAL verwenden und schauen ob es da auch auftritt.
Tobi L. schrieb: > Data: 55 bytes (5.4% Full) > (.data + .bss + .noinit) OK, scheint wohl nicht das Problem zu sein. Gibt es eine Funktion, die immens viel Variablen benötigt, dass das nicht mehr auf den Stack passt? Auch wäre es mal gut, ein Foto des Aufbaus einzustellen. Auch auf die Gefahr hin, dass du es nochmal neu machen musst, weil sich dein Aufbau bei der Abgabe nirgendwo im Netz finden lassen sollte... Oft gibt es Probleme beim VUSB mit den Z-Dioden. Das kann gern ne Weile gehen und plötzlich aussetzen. Wie ist der Taster verschaltet? Wie auf dem Pollin-AVR-Board sollte man es nicht machen, da bei jedem Tastendruck ein kleiner negativer Spike auf VCC erzeugt wird. Das kann mitunter lustige Effekte haben. Am besten läuft bei mir ein VUSB, wenn ich den Controller aus einem Low-Drop-Regler wie z.B. LM2951 gleich mit 3,3V betreibe. Damit hast du dann auch erstmal eine "Schutzbarriere" gegen Störungen auf der USB-Spannungsversorgung. mfg mf PS: das mit dem Terminal kann ich auch nur Empfehlen. Warum wollen immer alle eine Klickibunti-Oberfläche? Zumal die komische Java-Kommunikationslibrary alles andere als plattformübergreifend ist.
> liegen dann die gesamten daten an der UART an (also der Device und > Config descriptor usw) > oder liegen dann nachher an der UART nur meine reinen Rohdaten an weil > die descriptoren und die anderen Daten vom FT2323 "geschluckt" werden? Irgendwie scheinst du das mit dem Uart und den ComPorts nicht so richtig begriffen zu haben. Ein UART kennt doch keine Device Descriptoren. Der virtuelle ComPort verhält sich genauso wie ein Hardware ComPort. Der bekommt eine Nummer (z.B. COM6) und das wars. Den kann man dann einfach mit einem Terminal öffnen und loslegen. > Zumal die komische Java-Kommunikationslibrary alles andere als > plattformübergreifend ist. Wie willst du eine reine Hardwarekomponente wie den ComPort denn bitte Plattformübergreifend machen? Die Java Comm Api abstrahiert komplett Plattformübergreifend über die ComPorts. Die reale Ansteuerung derselben muss natürlich plattformspezifisch z.B. über .dlls erfolgen. gruß cyblord
Tobi L. schrieb: > liegen dann die gesamten daten an der UART an (also der Device und > Config descriptor usw) > oder liegen dann nachher an der UART nur meine reinen Rohdaten an weil > die descriptoren und die anderen Daten vom FT2323 "geschluckt" werden? Mit so einem Adapter merkst Du nix mehr von USB. Du hast ne virtuelle Com im Rechner und fertig. http://www.amazon.de/ELV-Mini-USB-Modul-UM2102-Komplettbausatz/dp/B004S79EM6/ref=pd_cp_computers_0 Schmeiß das V-USB Geraffel weg, das ist total unsinnig und unseriös. Du nutzt das ja nur als Tool, es ist nicht Teil Deiner Leistung, also kannst Du das auch mit nem Adapter und Uart machen. Durch PC und Java hat das alles eh nix mit Echtzeit zu tun, dann tuts auch die Serielle. Gruß, Norbert
Norbert S. schrieb: > Schmeiß das V-USB Geraffel weg, das ist total unsinnig und unseriös. Amen, das predige ich seit 120 Posts. Was hats gebracht?
>> Schmeiß das V-USB Geraffel weg, das ist total unsinnig und unseriös. >Amen, das predige ich seit 120 Posts. Was hats gebracht? Kommt später auch gut in Bewerbungen. [Sarkasmus on] "Meine Bachelorarbeit beruht auf einem experimentellem Design das nicht USB konform ist und später beim Kunden nur Probleme macht." [Sarkasmus off] Muss er halt selber wissen was er da tut.
Mini Float schrieb: > Tobi L. schrieb: >> Data: 55 bytes (5.4% Full) >> (.data + .bss + .noinit) > > OK, scheint wohl nicht das Problem zu sein. > Gibt es eine Funktion, die immens viel Variablen benötigt, dass das > nicht mehr auf den Stack passt? die usbfunktionsetupmethode dort werden 3 8 bit variablen erstellt allerdings sind die static.... aber das sind ja nicht "viele" > Auch wäre es mal gut, ein Foto des Aufbaus einzustellen. Auch auf die > Gefahr hin, dass du es nochmal neu machen musst, weil sich dein Aufbau > bei der Abgabe nirgendwo im Netz finden lassen sollte... > > Oft gibt es Probleme beim VUSB mit den Z-Dioden. Das kann gern ne Weile > gehen und plötzlich aussetzen. Wie ist der Taster verschaltet? Wie auf > dem Pollin-AVR-Board sollte man es nicht machen, da bei jedem > Tastendruck ein kleiner negativer Spike auf VCC erzeugt wird. Das kann > mitunter lustige Effekte haben. > Am besten läuft bei mir ein VUSB, wenn ich den Controller aus einem > Low-Drop-Regler wie z.B. LM2951 gleich mit 3,3V betreibe. Damit hast du > dann auch erstmal eine "Schutzbarriere" gegen Störungen auf der > USB-Spannungsversorgung. ich lasse den atmega8 mit 5 V laufen und hab die 3,6v Z dioden genutzt
Norbert S. schrieb: > Tobi L. schrieb: >> liegen dann die gesamten daten an der UART an (also der Device und >> Config descriptor usw) >> oder liegen dann nachher an der UART nur meine reinen Rohdaten an weil >> die descriptoren und die anderen Daten vom FT2323 "geschluckt" werden? > > Mit so einem Adapter merkst Du nix mehr von USB. Du hast ne virtuelle > Com im Rechner und fertig. > http://www.amazon.de/ELV-Mini-USB-Modul-UM2102-Komplettbausatz/dp/B004S79EM6/ref=pd_cp_computers_0 > dann werde ich mich tatsächlich mal aufmachen und mir das mit dem ftdi chip anschaun.Könnte ich dann FALLS ich wieder wirklich länger hängen sollte auf Unterstützung bauen? und nein ich meine nicht damit "gucken undn nach 5 min aufgeben und im forum fragen und "gutenbergen" sondern ich meine "lösung machen probieren, seit mehreren tagen hängen und verzweifeln und als notlösung im forum fragen ..mittlerweile sieht es aber echt danach aus als wenn java das problem ist....habe mir das mal mit meinem prof angeschaut
Hi, ich glaube Du solltest es mal einsehen, Tips zu dem V-USB kriegst Du hier nur noch von Bastlern, die das Niveau Deiner Arbeit nicht sonderlich anheben werden. Gruß, Norbert
Tobi L. schrieb: > http://www.amazon.de/ELV-Mini-USB-Modul-UM2102-Kom... der link ist wirklich gut.Danke!
Hi, hat sich überschnitten... Du hast damit einen Uart am AVR und eine Com im Rechner, Win hat den Treiber an Bord. Da kann es nur noch mit dem internen RC Oszillator schief gehen, nimm gleich ein Baudratenquarz. Und über Amazon ist der Versand billiger als direkt bei ELV... Gruß, Norbert
Tobi L. schrieb: > dann werde ich mich tatsächlich mal aufmachen und mir das mit dem ftdi > chip anschaun. Also wirst du dich wieder sinnlos mit dem nächsten Quatsch wochenlang beschäftigen? Um ein solches Modul zu BENUTZEN ist keinerlei Einarbeitung, und vorallem nicht in den FTDI Chip, erforderlich. Einstecken, evt. Treiber installieren. FERTIG. Dazu wurde dir ja gerade deshalb geraten, weil du dich so eben nicht auf deine Kommunikation konzentrieren musst. Und ob du das Ding dann wirklich als BAUSATZ brauchst kaufen solltest, wo der Erfolg dann doch wieder vom korrekten Bestücken abhängt sei mal dahingestellt. Und Tipp, dreh die Baudrate auf 2400 runter. Fürs Debug reichts und du kannst den internen Taktgenerator nutzen. gruß cyblord
>> dann werde ich mich tatsächlich mal aufmachen und mir das mit dem ftdi >> chip anschaun. > >Also wirst du dich wieder sinnlos mit dem nächsten Quatsch wochenlang >beschäftigen? MAX232 mit SUB-D Buchse an den ATMEga8 pappen. Fertigen USB Seriell Wandler kaufen und gut. Das ist was für Anfänger. Da bekommt er hier Support bis zum abwincken.
holger schrieb: >>> dann werde ich mich tatsächlich mal aufmachen und mir das mit dem ftdi >>> chip anschaun. >> >>Also wirst du dich wieder sinnlos mit dem nächsten Quatsch wochenlang >>beschäftigen? > > MAX232 mit SUB-D Buchse an den ATMEga8 pappen. Fertigen > USB Seriell Wandler kaufen und gut. Das ist was für Anfänger. > Da bekommt er hier Support bis zum abwincken. Ähm hast du dir das Modul angeguckt? Mit den USB-TTL Adaptern entfällt jeglicher MAX232. Da brauchst du GAR NIX MEHR dazwischen. Also warum den FTDI anschauen? Solche Details kann man als Sahnehaube auf die Arbeit draufsetzen, wenn man den Anspruch hat jedes Detail seiner Hardware zu kennen und zu beschreiben. Das ist die Kür wenn der Kern mal rennt. Davon ist man hier aber noch weit entfernt. Also einstecken, benutzen und die Motorsteuerung fertig machen. gruß cyblord
sowie ich das sehe ist ads ein bausatz gibt es das ding schon fertig? weil SMDs habe ich noch nicht gelötet
>sowie ich das sehe ist ads ein bausatz gibt es das ding schon fertig? >weil SMDs habe ich noch nicht gelötet Siehst du, deshalb hab ich dir den MAX232 empfohlen. Den gibt es im DIP Gehäuse. Kannst du einfach mal so ins Steckbrett stecken oder in eine Lochrasterplatine einlöten. Mach es dir doch nicht schwerer als es ist.
Alternativ wenns schneller gehen soll, aber teuerer: http://www.watterott.com/de/Pololu-USB-to-Serial-Adapter
habe mir jetzt das modul bestellt allerdings sehe ich auf anhieb kein datenblatt/ pinbelegung
http://static3.watterott.com/0J401600.gif Hätte mich jetzt auch gewundert. Gut, ein bisschen merkwürdiges Bild, aber es ist alles zu erkennen. Auf dem kleinen Bild drunter. Da muss man die 3 Euro China Dinger loben. Die haben schön alles auf der Platine beschriftet.
Hallo, aufwachen! Das was ich gepostet hatte ist ein fertiges Modul mit dem Chip als BGA drauf. Nur den Pfostenstecker (oder Kabel wenn man will) an TTL-Uart muß man noch drauflöten. Mini-USB-Buchse ist auch drauf (das was Kameras und Navis haben). Ja, da steht Bausatz aber wenn man mal genau nachsehen würde... Es ist auch eine umfangreiche Doku bei den Dingern von ELV dabei. Von den Dingern sollte man immer welche rumliegen haben. Tobi, das kann doch nicht angehen: http://www.mikrocontroller.net/articles/Baudratenquarz Gruß, Norbert
Tobi L. schrieb: > habe mir jetzt das modul bestellt allerdings sehe ich auf anhieb kein > datenblatt/ pinbelegung Also ich schau mir ja immer erst die Datenblätter an und bestell dann die Produkte.
Tobi, es ist egal ob Du einen CP2102 oder FTDI Bausatz nimmst (nimm einen Bausatz, da weißt Du dass es im Normalfall funktioniert). Einziger Vorteil von FTDI ist, falls Du später eine eigene Platine löten MUSST, dass es den FTDI auch in anderen Gehäusen gibt als QFN! Auch von Treiberproblemen habe ich schon gelesen beim CP2102, wobei ich eine absolut grotten schlechte Platine für den CP2102 selbst gemacht/gelötet habe und der rennt mit 2MBaud ohne Probleme schon seit Jahren. Treiber musst Du dann vom jeweiligen Hersteller herunterladen. Wie bereits gesagt entweder für einen VCP(Virtual Com Port) oder einen Direct Driver. Ersteres (VCP) wird reichen. Einen MAX232 brauchst Du definitiv NICHT. Du könntest vom USART auf RS232, dafür würdest Du einen MAX232 brauchen. Da die meisten Laptops/PCs aber heute keine direkte COM-Schnittstelle mehr haben, ist der so unnötig wie ein Kropf! Auch der Vorschlag von holger finde ich nicht so der Brüller, ist nur wieder eine Fehlerquelle mehr! Also nochmal zusammengefasst: 1) Fertiges CP2102 oder FTDI Modul kaufen 2) Treiber Herunterladen und installieren: CP2102: http://www.silabs.com/pages/DownloadDoc.aspx?FILEURL=Support%20Documents/Software/CP210x_VCP_Win_XP_S2K3_Vista_7.exe&src=SoftwardDownloadsWebPart FTDI: http://www.ftdichip.com/Drivers/VCP.htm 3) In einem Terminalprogramm den betreffenden Port öffnen. 4) Den Rx Pin mal etwas gegen Masse/Vcc tippen. Dann solltest Du kryptische Zeichen auf dem Terminal sehen (nur als Verbindungstest ob überhaupt was geht). 5) Dein uC Programm umschreiben (normale UART Routinen hier im Forum anschauen und implementieren, wie erwähnt nen externen Quarz verwenden!) 6) Das ganze wieder im Terminalprogramm verifizieren. 7) Dein Javaprogramm umschreiben. Sollte es Probleme geben, melde Dich. Allerdings sollte es damit sowas von einfach werden, dass keine Fehler mehr auftreten sollten. Grüße
Tobi L. schrieb: > habe mir jetzt das modul bestellt allerdings sehe ich auf anhieb kein > datenblatt/ pinbelegung Welches?
Tobi L. schrieb: > habe mir jetzt das modul bestellt allerdings sehe ich auf anhieb kein > datenblatt/ pinbelegung Hoffentlich baust du später keine Atomkraftwerke.
@Tobi: Du weisst auch, das ein Arduino2009/Uno alles an Bord hat, um dein Projekt zu unterstützen? Den FT232, ein ATMega8/48/88/168/328 und einen 16 Mhz Quarz. Die Stromversorgung liefert ungeregelte Motorspannung und MC-Saft. ISP Anschluss hat er auch. Denn Bootloader brauchst du nicht, wenn du deinen eigenen ISP Programmer hast und die Arduino Software auch nicht.
Tobi.l schrieb: > Eine Idee 2 schrieb: >> Hast Du eine saubere Versorgungsspannung? > naja das device ist Buspowered hängt also (ohne motor) am USB-Bus > >> Saubere Lötstellen? > japp alle doppelt und dreifach geprüft und ich weiss wie sauberer > lötstellen aussehen > eventuelle machst du keine Sichtprüfung sondern misst mit einen Multimeter die Lötstellen mal nach, ... .wärest du nämlich nicht der erste der glaubte mit blossen auge kalte Lötstellen zu entlarven, das klappt manches mal, aber halt nicht immer > > jap der läuft noch..hab ja auch den watchdog an und die USB-Verbindung > besteht weiterhin...ausserdem kann ich noch Interrupts auslösen (per > taster) und die werden mir auch (per LED)angezeigt (Die Led ist also bei > jedem 2ten Tastendruck an ) warum hast du den Watchdog angeschaltet? also hier solltest du dich fragen, wozu du den Watchdog eigentlich brauchst, in der Regel kann man den ausschalten, zumindest in deinen Fall kannst du das mit Sicherheit (der ist nur notwendig, wenn du mit deiner Schaltung den Motor über längere Zeit regeln willst, in der testphase aber brauchst du den nicht, und kannst den abschalten was das Interrupthandling angeht, an dem was du geschrieben hast, kann man die Vermutung hochheben, das du nicht verstanden hast, in wiefern der Watchdog mit den Interrupt zusammenhängt oder wozu Watchdog ist, oder die Möglichkeit Interrupts zu nutzen in Verbindung mit dem Watchdog ich würde an deiner Stelle erstmal mit einfachen Programmen versuchen, und lass die Finger von Java ö.Ö ich meine ,, gut, da gibt es auch Glaubenskriege Java oder C++ aber Java auf einen Microkontroller ?!?! was issn das???? java ist cross embedded, bedeutet, es erzeugt bytecode, das bedeutet, du musst auf den Controller eine Virtuale Machine installieren, ... erst über dieser läuft dann in Anschluss das eigentliche Programm, bei kleinen Prozessoren wie du ihn da Verwendest, erscheint mir das etwas sehr mit Kanonen auf Spatzen geschossen keine Frage, Cross Embedded hat seinen Charm, aber für das was du da machst, ...... das ist da grotesker Unsinn > > nach einem reset des usb-bus (vom javaprogram per button) kann ich > wieder Controle-Messages schicken. ich habe ja mal Java für uC's für einen Witz gehalten, .... aber die machen Ernst, es gibt mittlerweile tatsächlich Versuche, Java auf Mikrokontroller durchzusetzen ich an deiner Stelle würde die Pfoten von Java weglassen und es mit C probieren, und bei USB Schnittstellen ,die eh ein bestimmtes Datentransfer Tempo abverlangen, ... wäre ASM vieleicht für einige sachen nicht das schlechteste c bietet auch die Möglichkeit von Inline Assemblerroutinen, so das du bequem einige Passagen in Assemblerr code beschreiben kannst, und den rest, zeitsparend in c in anderer Sache es gibt auch Mikrokontrolle, die bereits eine USB Schnittstelle implementiert haben, warum also eine VUSB?? das versteh ich da nicht ganz, warum du nicht so einen Prozessor genommen hast, wurde dir der Prozessor den du benutzt vorgeschrieben? wenn ja,, es gibt auch USB to UART Konverter nur das du weg kommst von der virtuellen Implementation einer Schnittstelle wie auch immer, was man in Studium nicht gelernt hat, wird man in 3 Monaten Bachelorarbeit nicht nachholen LG
Axel F. schrieb: > Tobi.l schrieb: >> Eine Idee 2 schrieb: >>> Hast Du eine saubere Versorgungsspannung? >> naja das device ist Buspowered hängt also (ohne motor) am USB-Bus >> >>> Saubere Lötstellen? >> japp alle doppelt und dreifach geprüft und ich weiss wie sauberer >> lötstellen aussehen >> > eventuelle machst du keine Sichtprüfung sondern misst mit einen > Multimeter die Lötstellen mal nach, ... .wärest du nämlich nicht der > erste der glaubte mit blossen auge kalte Lötstellen zu entlarven, das > klappt manches mal, aber halt nicht immer > > >> >> jap der läuft noch..hab ja auch den watchdog an und die USB-Verbindung >> besteht weiterhin...ausserdem kann ich noch Interrupts auslösen (per >> taster) und die werden mir auch (per LED)angezeigt (Die Led ist also bei >> jedem 2ten Tastendruck an ) > > warum hast du den Watchdog angeschaltet? > also hier solltest du dich fragen, wozu du den Watchdog eigentlich > brauchst, in der Regel kann man den ausschalten, zumindest in deinen > Fall kannst du das mit > > Sicherheit > (der ist nur notwendig, wenn du mit deiner Schaltung den Motor über > längere Zeit regeln willst, in der testphase aber brauchst du den nicht, > und kannst den abschalten > > was das Interrupthandling angeht, an dem was du geschrieben hast, kann > man die Vermutung hochheben, das du nicht verstanden hast, in wiefern > der Watchdog mit den Interrupt zusammenhängt oder wozu Watchdog ist, > oder die Möglichkeit Interrupts zu nutzen in Verbindung mit dem Watchdog > > ich würde an deiner Stelle erstmal mit einfachen Programmen versuchen, > und lass die Finger von Java ö.Ö > > ich meine ,, gut, da gibt es auch Glaubenskriege > Java oder C++ > aber Java auf einen Microkontroller ?!?! > was issn das???? > java ist cross embedded, bedeutet, es erzeugt bytecode, das bedeutet, du > musst auf den Controller eine Virtuale Machine installieren, ... erst > über dieser läuft dann in Anschluss das eigentliche Programm, bei > kleinen Prozessoren wie du ihn da Verwendest, erscheint mir das etwas > sehr mit Kanonen auf Spatzen geschossen > > keine Frage, Cross Embedded hat seinen Charm, aber für das was du da > machst, ...... das ist da grotesker Unsinn nein java läuft nicht auf dem avr java läuft auf dem pc...es gibt wohl mini javaavr bibliothekenen aber dafür wäre java zu groß > wenn ja,, es gibt auch USB to UART Konverter > jaich werde das auch machen... ich habe aber gesern mit den code nochmal angeschaut und 2-3 variablen geändert und zumindest läuft er jetzt seit 4 std ohne fehler wo er vorher nach ca max. 1 std aufgehört hat. ich weiss das lleine beweisst noch garnichts ins besondere nicht dass das teil fehlerfrei funktioniert... deshalb werde ich das auch mit dem USB-uart konverter machen aber ehrlich gesagt interessiert es mich ob es daran liegen kann. ich würde gerne den Code posten...würde sich jmd den code INTERESSEHALBER anschaun damit ich (und vll auch er selber) was lernt?
>> jap der läuft noch..hab ja auch den watchdog an und die USB-Verbindung >> besteht weiterhin...ausserdem kann ich noch Interrupts auslösen (per >> taster) und die werden mir auch (per LED)angezeigt (Die Led ist also bei >> jedem 2ten Tastendruck an ) aber das sind doch zwei verschiedene Prozesse durch ein Interrupt Erreignis eine LED zum Leuchten bringen ist das eine, der Watchdog startet aber regelmässig deinen Prozessor neu da hat das eine mit dem anderen nix zu tun verstehst du, Watchdog = spezieller Timmer, löst also in Prinzip wohl auch irgendwann ein Interrupt aus, dieser führt zu einen ChipReset und der Chip bootet neu die aber hat in Prinzip mit deinen Taster-Interrupt nix zu tun .. das dein Chip nach einiger Zeit sich verrennt, kann daran liegen, das du deinen Speicher voll schreibst und ihn in Anschluss nicht freimachst!! das nennt man Speicherüberlauf da hängen sich häufig Prozessoren dann auf verwende zum Speichern immer einen Ringbuffer, der räumt sich pro Umlauf selber auf Alloziiere dazu einen Speicherblock auf den du sicher verzichten kannst und noch mal,,,, wenn du alle die Dinge nur so halb und solala verstehst, wirst du enorme Probleme bekommen, auch in abschliessenden Kolloquium !! also bemühe dich und schaff dir Literatur an, zu dem Thema
Axel F. schrieb: >der Watchdog startet aber regelmässig deinen Prozessor neu eben das genau tut er ja nicht. da ich in der endlosschleife direkt vor dem usbpoll den watchdog zurücksetzte. > verstehst du, Watchdog = spezieller Timmer, löst also in Prinzip wohl > auch irgendwann ein Interrupt aus, dieser führt zu einen ChipReset und > der Chip bootet neu das tut er ja eben nicht, da die usbverbindung bestehen bleibt. würde der watchdog greifen würde meines eraachtens die usb kommunikation unterbrochen werden da der mikrocontroller resetet wird und damit die main neu aufgerufen wird und damit der mikrocontroller die usbverbindung die durch die methode USBPOLL sichergestellt wird(die sich in der forschleife der main befindet) unterbrochen werden oder ich habe die Definition eines watchdogs überhaupt nicht verstanden was ich ehrlich gesaht nicht glaube. Für mich ist ein watchdog quasi "ein digitaler Tonmannschalter " , wie bei den Loks, den ich in meinem Hauptprogramm immerzurücksetzen muss, da er ansonsten seinen "Grenzwert" erreicht und einen Reset des mikrocontrollers druchführt...und ich bin der Meinung das falls ein solcher Reset in meinem Hauptprogram durchgeführt werden würde ich die USB-Verbindung verlieren würde > die aber hat in Prinzip mit deinen Taster-Interrupt nix zu tun > das ist mir an sich soweit klar > wenn du alle die Dinge nur so halb und solala verstehst, wirst du enorme > Probleme bekommen, auch in abschliessenden Kolloquium !! > > also bemühe dich und schaff dir Literatur an, zu dem Thema bin ich dabei
Axel F. schrieb: > ich würde an deiner Stelle erstmal mit einfachen Programmen versuchen, > und lass die Finger von Java ö.Ö > > ich meine ,, gut, da gibt es auch Glaubenskriege > Java oder C++ > aber Java auf einen Microkontroller ?!?! > was issn das???? > java ist cross embedded, bedeutet, es erzeugt bytecode, das bedeutet, du > musst auf den Controller eine Virtuale Machine installieren, ... erst > über dieser läuft dann in Anschluss das eigentliche Programm, bei > kleinen Prozessoren wie du ihn da Verwendest, erscheint mir das etwas > sehr mit Kanonen auf Spatzen geschossen > > keine Frage, Cross Embedded hat seinen Charm, aber für das was du da > machst, ...... das ist da grotesker Unsinn Wo schreibt der TE denn dass er den Controller in Java programmiert? In Java ist sein Host Programm. Eventuell erst lesen dann klugscheißen. gruß cyblord
cyblord ---- schrieb: > Alternativ wenns schneller gehen soll, aber teuerer: > > http://www.watterott.com/de/Pololu-USB-to-Serial-Adapter Hier gibt es das Teil billiger inkl. Datenblätter und direkt auf der Platine beschriftet: http://shop.myavr.de/Bauelemente%20und%20Controller/myUSBtoUART.htm?sp=article.sp.php&artID=200024 Verwende ich in einigen Projekten absolut problemlos.
@cylord da kannst du mal sehen, da hab ich mich wohl verlesen, das hat der TE auch schon richtig gestellt, .... und was soll dein anpissender Beitrag nun ? langeweile? also ich hab langeweile, deswegen schau ich hier auch rein vieleicht ist es auch Mitgefühl, weil ich weiss wie sich ein Bachelor, oder ein Abschlussabsolvent fühlen kann, wenn er verlohren geht in den Weiten dessen was wir Weit nennen ..... wie auch immer, Piss andere Leute dumm an @Tobi der Watchdog meldet nicht wie in der strassenbahn das der chip noch lebt, sondern normalerweise schaltet der einfach stupide deinen Mikrochip aus und bootet neu, ich schrieb vorher mal das der Watchdog in grunde nur ein Timer ist, den kannst du natürlich reseten, dann greift der Watchdog auch nicht, hier musst du aber beachten, wie lange der Watchdog dazu benötigt, da gibt es so Zeiten die von der Taktfrequenz des Chips abhängen, das musst du in Datenblatt nachlesen, oft kannst du aber die Zeit zwischen den Reseten noch etwas konfigurieren und entsprechen der durchschnittlichen Runtime deines Programmes anpassen du nutzt den Watchdog aber nicht um zu schauen ob der Chip noch lebt, sondern, der Watchdog soll sicherstellen ,das wenn der Chip abgestürzt ist, er wieder neu bootet,, das kann der, in dem innerhalb der Runtime, der Watchdogtimer immer einmal zurück gesetzt wird... wird der Timer nämlich dann einmal nicht zurückgesetzt, läuft er ja ab, löst dann einen interrupt aus und die zugehörige Interrupt routine verursacht dann einen Neustart des Chips,,, gibt also plump gesagt ein Signal auf MCLR also Programm läuft in Loop einmal komplett durch und wiederholt sich, am Anfang des Programms den Watchdog timer auf 0 setzen... passiert das immer, läuft Chip bis Weihnachten und weiter ist in deinen Fall aber egal in deinen Fall solltest du eventuelle einfach den Watchdog abschalten, und wenn du ein Totmannmelder benötigst, versuche das über ein regulären Interrupt herzurichten.. wenn du nämlich nur wissen willst ob die USB verbindung noch vorhanden ist oder dergleichen, reicht ein Interrupt voll aus dort hast du auch dann mehr Kontrolle über das was der Chip eigentlich machen soll also internen Timer des Chips nutzen, bei ablauf die Verbindung prüfen, bei verbindungsverlust meldung senden und versuch mal auf PC Ebene auch von Java wegzukommen, ich meine, gut, ich verstehe nun warum du unbedingt VUSB haben wolltest, das ist bei Java so das du Schnittstellen nicht direkt ansprechen kannst da Java komplett weg von der Hardware ist eigentlich benutzt man java nur auf Protokoltransferebene da wo TCP / IP anfängt zum beispiel die hardware selber, also Hardware adressen oder real vorhandene Schnittstellen kann man mit Java nicht direkt ansprechen oft macht man so etwas dann über eine Zwischenlösung, man schaltet zwischen Hardware und Java-Program noch einen hardwarebedienenden Server, welcher oft in Ansi - C geschrieben ist so kannst du dann über Java mit der hardware kommunizieren, da steht dir dann auch in Java so etwas wie eine virtuelle Schnittstelle zur Verfügung, die du dann über Java bedienen kannst auf das Problem stösst man relativ schnell wenn man spracherkennungssoftware entwickeln will, mit Hilfe von Java bibliotheken nur als Hinweis, in dem Zusammenhang hab ich mir das mal fein erklären lassen.... so nun muss ich auch wieder was tun .... LG
Axel F. schrieb: > @cylord > > da kannst du mal sehen, da hab ich mich wohl verlesen, > das hat der TE auch schon richtig gestellt, .... > und was soll dein anpissender Beitrag nun ? langeweile? Verlesen? Der TE hat schon einiges an Code gepostet, dass dies kein Java ist sieht man sofort. Du hast dich nicht verlesen, sondern überflogen und dann einen schnellschuss gebracht und das bringt hier niemanden weiter. Erst nicht im Thread mitkommen, aber in ellenlangen Posts den Besserwisser raushängen, das hat man gern. > wie auch immer, Piss andere Leute dumm an Nö ich sag was ich denk und zu wem ich will. gruß cyblord
@cylord
> Nö ich sag was ich denk und zu wem ich will.
ah so, so einer bist du also
Axel F. schrieb: > @Tobi > > der Watchdog meldet nicht wie in der strassenbahn das der chip noch > lebt, das meinte ich nicht^^ Es kann sein dass ich mich da undeutlich ausgedrückt habe. sondern normalerweise schaltet der einfach stupide deinen > Mikrochip aus und bootet neu, das meinte ich auch :-) ich schrieb vorher mal das der Watchdog in > hier musst du aber beachten, wie lange der > Watchdog dazu benötigt, da gibt es so Zeiten die von der Taktfrequenz > des Chips abhängen, das musst du in Datenblatt nachlesen, > oft kannst du aber die Zeit zwischen den Reseten noch etwas > konfigurieren und entsprechen der durchschnittlichen Runtime deines > Programmes anpassen Ok das wusste ich nicht ! > du nutzt den Watchdog aber nicht um zu schauen ob der Chip noch lebt, > sondern, der Watchdog soll sicherstellen ,das wenn der Chip abgestürzt > ist, er wieder neu bootet,, das ist auch soweit klar..wie gesagt vll unverständlich formuliert von mir > das kann der, in dem innerhalb der Runtime, der Watchdogtimer immer > einmal zurück gesetzt wird... wird der Timer nämlich dann einmal nicht > zurückgesetzt, läuft er ja ab, löst dann einen interrupt aus und die > zugehörige Interrupt routine verursacht dann einen Neustart des Chips,,, > gibt also plump gesagt ein Signal auf MCLR jap auf das selbe sollte meine erklärung hinauslaufen > > > in deinen Fall solltest du eventuelle einfach den Watchdog abschalten, > und wenn du ein Totmannmelder benötigst, versuche das über ein regulären > Interrupt herzurichten.. wenn du nämlich nur wissen willst ob die USB > verbindung noch vorhanden ist oder dergleichen, reicht ein Interrupt > voll aus > dort hast du auch dann mehr Kontrolle über das was der Chip eigentlich > machen soll > also internen Timer des Chips nutzen, bei ablauf die Verbindung prüfen, > bei verbindungsverlust meldung senden > > und versuch mal auf PC Ebene auch von Java wegzukommen, > > ich meine, gut, ich verstehe nun warum du unbedingt VUSB haben wolltest, > das ist bei Java so das du Schnittstellen nicht direkt ansprechen kannst > da Java komplett weg von der Hardware ist > eigentlich benutzt man java nur auf Protokoltransferebene da wo TCP / IP > anfängt zum beispiel > die hardware selber, also Hardware adressen oder real vorhandene > Schnittstellen kann man mit Java nicht direkt ansprechen > oft macht man so etwas dann über eine Zwischenlösung, man schaltet > zwischen Hardware und Java-Program noch einen hardwarebedienenden > Server, welcher oft in Ansi - C geschrieben ist > > so kannst du dann über Java mit der hardware kommunizieren, > da steht dir dann auch in Java so etwas wie eine virtuelle Schnittstelle > zur Verfügung, die du dann über Java bedienen kannst naja ich nutze die javalib von libusb die ist der c libusb Library sehr ähnlich und soll wohl auch stabil laufen....... p.s ich lasse gerade wieder den controller seit 4 std laufen (zwischendurch ist mir mein netbook an dem der controller angehängt ist abgekackt) und er läuft immernoch,......auch wieder hier der hinweis. es ist mir klar dass das kein beweiss dafür ist dasss er 100%tig läuft .....
@ Axel F. Mit dem Unsinn den du von dir gibst erreichst du nichts, außer die Verunsicherung von Tobi noch zu vergrößern. Ich glaube Tobi hat besser verstanden wofür ein watchdog ist als du. @Tobi Wie ist denn jetzt dein Status?
Und dann noch die unsäglich Schwachsinnigen Ausführungen zu Java: > eigentlich benutzt man java nur auf Protokoltransferebene da wo TCP / IP > anfängt zum beispiel > die hardware selber, also Hardware adressen oder real vorhandene > Schnittstellen kann man mit Java nicht direkt ansprechen > oft macht man so etwas dann über eine Zwischenlösung, man schaltet > zwischen Hardware und Java-Program noch einen hardwarebedienenden > Server, welcher oft in Ansi - C geschrieben ist Ich dachte schon, wie kommt man auf so einen quatsch, aber dann > in dem Zusammenhang hab ich mir das mal fein erklären lassen.... ok, selber keine Ahnung aber irgendwer hat mal irgendwas erzählt. Nach deiner Theorie kann man mit Java also auch nicht auf lokalen Festplatten oder gar das lokale Ram zugreifen. ist ja alles Hardware und das geht mit java natürlich nicht. naja da braucht man wohl dann weiter nichts zu sagen und BACK TO TOPIC.
> @Tobi > Wie ist denn jetzt dein Status? also kurz formuliert das device läuft(seiz 4 std) immernoch ohne probleme...und schickt Daten. D.h 4 mal länger als der bosher längste run ohne probs... ist auch unempfindlich gegen aus und einstöpselb des ladekabels...(was die vorgängerversion nicht war) ich hab mir gerade ne gabellichtschranke und ne acryl platte für die lochscheibe geholt.. und werde mich darauf erstmal konzentrieren.. parallel lasse ich das deide bish eute nacht laufen da ich dann uwar immnoch nicht 100%tig weiss ob es dauerhaft läuft aber dann für mein empfinden "sich die wahrscheinlichkeit dass ich den fehler gefunden habe erhöht hat" mittlerweile bin ich auch der meinug dass ich nur fälschlicherweise angenommen habe dass das device keien datn mehr schickt... ich hatte für mich persönlich festgelegt dass das device keine daten mehr schickt weil ich als rückgabe wert den alten wert im mikrocontroller bekomme. tatsächlich war es aber wohl so (so vermute ich) dass das device intern nicht mehr hochgehält hat und sich im register aufgehängt hat(wenn sowas möglich ist) und daher die variable nicht mehr hochgezählt hat und mir immer wieder den altenn variblen wert zurpck geschickt hat
OK. Ich denke, es ist auch besser wenn du den USB Part jetzt erstmal ruhen lässt. Manchmal bemerkt man Fehler auch erst, wenn man etwas Abstand zu der Sache gewonnen hat. Hast du dir denn schon Gedanken gemacht, wie du die Regelung realisieren willst? Bleibst du bei der ursprünglichen Idee oder lasst du den Controller Regeln (und ab und zu Statusmeldungen senden)?
Wer unterschreibt eigentlich alles bei deiner Eigenständigkeitserklärung der BA?
cyblord ---- schrieb: >> in dem Zusammenhang hab ich mir das mal fein erklären lassen.... > > ok, selber keine Ahnung aber irgendwer hat mal irgendwas erzählt. > > Nach deiner Theorie kann man mit Java also auch nicht auf lokalen > Festplatten oder gar das lokale Ram zugreifen. ist ja alles Hardware und > das geht mit java natürlich nicht. Da kann ich Dir nur zustimmen, habe genau das selbe gedacht. Simon K. schrieb: > Wer unterschreibt eigentlich alles bei deiner Eigenständigkeitserklärung > der BA? Es kann mir keiner erzählen dass wenn er ein Problem während seiner Abschlussarbeit hatte, dass er nicht mit Anderen darüber geredet hat.
Eine Idee 2 schrieb: > Simon K. schrieb: >> Wer unterschreibt eigentlich alles bei deiner Eigenständigkeitserklärung >> der BA? > > Es kann mir keiner erzählen dass wenn er ein Problem während seiner > Abschlussarbeit hatte, dass er nicht mit Anderen darüber geredet hat. Das nicht. Aber der Thread hier droht mittlerweile auf die zweite Seite umzubrechen, das ist schon was ganz anderes...
@Cylord auf so einen Quatsch stösst man wenn man sich damit beschäftigt das scheinst du nicht getan zu haben.... p.s. Festplatten zugriff mit Java und mal schauen was eine VM ist.... solltest du tun..... wie auch immer, ich glaube wir beide haben uns eh alles gesagt, was dazu zu sagen ist .... weisst du, ich tausch mich nicht gerne aus, mit Leuten die schon von Geburt an, einen vollständigen Wissenstand zu haben glauben ..... @Klaus Dieter Unsinn ist es aus der Perspektive des Betrachters, dann wenn .... sollen wir das ausdiskutieren, hab ich keine Zeit, oder keine Lust zu ist auch relativ aus der Sicht des Betrachters kannst du dir aussuchen Augenzwincker und lese dich mal in das Thema Watchdog ein, da gibt es nicht all zu viel was zu verstehen ist, @Tobi warum bestehst du auf den Einsatz eines Watchdogs, das habe ich an deinen Ausführungen noch nicht genau verstehen können Aus deiner ursprünglichen Aufgabenstellung ging die Notwendigkeit eines Watchdogs nicht hervor, sollst du ihn mit einbauen, weil es eine Vorgabe des Professors ist? so quasi als zusätzliches Schmanckerl???? zu > das kann der, in dem innerhalb der Runtime, der Watchdogtimer immer > einmal zurück gesetzt wird... wird der Timer nämlich dann einmal nicht > zurückgesetzt, läuft er ja ab, löst dann einen interrupt aus und die > zugehörige Interrupt routine verursacht dann einen Neustart des Chips,,, > gibt also plump gesagt ein Signal auf MCLR jap auf das selbe sollte meine erklärung hinauslaufen > das ist aber nicht Toter Mann Prinzip wie bei Strassenbahnen stelle dir vor, der Strassenbahnfahrer meldet sich einmal nicht, und Bumm, die Strassen bahn wird einmal abgeschaltet und wieder eingeschaltet weisst du, in extremsten Fall ist der strassenbahnfahrer immer noch tot... aber stell dir vor, die Strassenbahn hängt sich während der fahrt auf, wegen vieleicht einer technischen disfunktion, in dem moment greift ein Watchdog, der fährt das system einmal runter und startet neu, unabhängig eventuelle davon ob der Strassenbahnfahrer ein Problem hat .. wie auch immer, ich habe dich so verstanden, das der Watchdogtimer dann nicht zurück geschaltet wird, wenn die USB verbindung weg bleibt,... aber in diesen Fall könntest du doch einen einfachen interrupt nehmen, und den Watchdog umgehen, du musst normal auch nicht immer gleich den Chip neu starten.... weil nur angenommen, die usb schnittstelle ist nach einer gewissen Zeit in Sendepause, dann würde ja der Chip ständig neu starten, welchen sinn macht das dann? hmmm, Fragen die sich ja dann auch stellen sind, pollt die USB schnittstelle regelmässig den Chip, und in welchen abständen? kannst du das Pollingsignal für ein Interrupt nutzen? oder wenn die USB Schnittstelle nicht pollt, lass doch einfach den chip regelmässig pollen in der art wie ein Ping, warte auf antwort, kommt keine Antwort, dann Verbindung neu initialisieren oder alarm in Form einer leuchtenden LED geben watchdog erscheint da etwas unelegant, sollte als Sicherheitsfunktion genutzt werden, wenn die Regelung in einer art langstrecken versuch getestet wird. als sicherheit, das wenn der Chip selber hängt, sich dann resetet... du solltest diese Funktion nicht missbrauchen für andere Zwecke das ist in etwa so wie wenn man den Notausschalter nutzt für irgendwas anderes anstelle für Notfälle..... das ist nicht sinn der sache du steigst ja auch nicht durch den Kofferraum in dein Auto,... soviel zu meinen persönlichen Bedenken des Watchdogs in Rahmen deiner Anwendunge..
Axel F. schrieb: > @Tobi > > warum bestehst du auf den Einsatz eines Watchdogs, das habe ich an > deinen Ausführungen noch nicht genau verstehen können > > Aus deiner ursprünglichen Aufgabenstellung ging die Notwendigkeit eines > Watchdogs nicht hervor, sollst du ihn mit einbauen, weil es eine Vorgabe > des Professors ist? so quasi als zusätzliches Schmanckerl???? nein der watchdog ist von haus aus in der implementierung von vusb enthalten... > > das ist aber nicht Toter Mann Prinzip wie bei Strassenbahnen > > stelle dir vor, der Strassenbahnfahrer meldet sich einmal nicht, und > Bumm, die Strassen bahn wird einmal abgeschaltet und wieder > eingeschaltet > > weisst du, in extremsten Fall ist der strassenbahnfahrer immer noch > tot... naja k bei der strassenbahn bzw der lok wird dann soviel ich weiss ne notbremsung eingeleitet und der zug fährt NICHT von neuem an..... das heisst ICH sehe den unterschied von watchdog zu totmannschalte darun dass der watchdog nach einem abschalten wieder neustartet was der totmannschalter nicht tut > weil nur angenommen, die usb schnittstelle ist nach einer gewissen Zeit > in Sendepause, dann würde ja der Chip ständig neu starten, welchen sinn > macht das dann? nein die usbkommnukikation wird von vusb intern auch per irgendwie per interrupt wie genau weiss ich nicht. geb ich zu! hab mir nicht alle lib von vusb angeschaut.
@Simon K Java greift auf Hardware in PC über die VM zu hat aber wie Tobi selber sogar schon weit vorher erkannt hat, das hab ich grad gelesen, probleme damit ComPorts zu bedienen, das aber liegt auch in der Natur von Java,, hier lohnt es sich wirklich einmal zu schauen was Byte code ist und wieso es für so etwas einer virtuellen Runtimeumgebung benötigt vor allem sollte man dabei nachschlagen was diese Runtime Umgebung genau macht ist unter den hier ergebenen Aspekt lustig zu lesen Java ist keine Sprache mit der man Hardware direkt ansprechen kann, wenn man das will, geschieht dies stets über virtuelle Ports diese aber müssen bereitgestellt werden und das wiederrum ist recht komplex in einen Fall wie ihn nun Tobi bedient, scheint es nunmal nicht klug, sich mit solchen vorrangig zu beschäftigen wobei, wie ich schon vorher mal schrieb Java bietet durch die Verwendung von Bytecode die Möglichkeit Cross Embedded zu Programmieren das geht daher, das man auf der Hardware plattform auf der mein Sourcecode angewendet werden soll einfach eine kompatible Runtime Umgebung installiert werden muss, diese Umgebung managed dann jede Hardware recource so gut sie kann aber ebend nur so gut sie kann Soundkarten über Java programmieren zum beispiel funktioniert so mal gar nicht auf direkten weg Cross embedded ist gut, hat seinen charm, macht aber nunmal nicht immer sinn wenn man Hardware nah Programmiert, und das macht Tobi grad, sollte man überlegen ob man nicht Java umgehen sollte, C oder ASM sind da sicher ergiebiger nun Tobi programmiert auf seinen Chip nicht in Java aber auf seinen host PC wer sagt ihn denn jetzt, das Java hierr den virtuellen Com Port auch richtig beddient oder ob java das Timing richtig handelt ich könnte es nicht sagen, kannst du es? .. dann schön für dich :) bist du der erste spass beiseite,, Java hat diese Probleme, die kann man auch nciht wegdiskutieren LG
@Tobi ja es gibt einen Interrupt von Chip aus, der immer lauscht der ist wichtig für deinen Chip aber es kann ja passieren das dein Chip zwar noch einen super initialisierten USB - Port hat ,der top einsatzfähig ist aber die Verbindung zum PC ist weggebrochen oder die USB Schnittstelle an PC ist weg da musst du dann von Pic aus einmal deinen host anpingen zum Watchdog, exact genau das,, deswegen ist es schwierig den Watchdog als Totmanschalter zu sehen, da er nciht das selbe macht hmmm, wenn du nun deine Schaltung lange laufen lässt kann es nach wochen oder tagen jam al passieren das der Chip abstürtzt in dem Fall ist ein Watchdog gut aber einfluss auf das eigentliche Programm sollte der nicht haben jetzt kann natürlich auch passieren, das der Chip beim Datentransfer über USB abstürzt, in so fällen ist ein watchdog ja praktisch, aberr wenn geht, umgeh das
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.