hi, also zuerst zu dem angehängten schaltplan: war wäre jetzt die vorläufig endgültige version, wenn jemand fehler in der beschaltung sieht, dann melden (warum ich gnd und vcc so komisch verlegt hab und nicht einfach die symbole verwendet habe? der schaltplan soll später mal als vorlage für eine lochrasterplatine dienen, und da hilf es mir nichts, wennich nur die hälfte der leitungen eingezeichnet habe :-) ) jetzt zu dem anderen thema, dem programm entwurf: also an den anschlüssen aus jp4 hängen die lichtschranken. ich bekomme eindeutig high oder low. das ziel dieses projekts ist es, zu erfassen, wenn sich an diesen lichtschranken was ändert, die zeit dazu zu speichern und das ganze dann an den pc per uart weiter zugeben. und da ist auch schon das problem. ich kann nicht einfach immer was schicken, wenn sich was ändert, da ich einfach nicht die zeit dazu habe. (bei 14,76mhz takt und einer auflösung von 5µs sind das gerade mal 73 taktzyklen, da kann man vielleicht einmal was schicken, aber wenn man dann die zweite veränderung nach 5µs an den pc schicken will, dann macht der doch dicht, und ich warte ewig auf das 'go!' zum übertragen der daten.) deshalb könnte man die daten ja zuerst speichern, und dann am ende des experiments, auf anfrage des pc, schicken (zum glück gibt's ein ende :) d.h. ich muss irgendwo die zustände der acht eingänge mit zeitstempel zeischenspeichern. und dort wo ich das mache, brauche ich mindestens noch platz für 39 solcher paare. nun die frage: wo ist das? reicht da der ram des atmega8? brauch ich noch was dazu? oder würdet ihr das problem ganz anders lösen? schreibt einfach mal was euch dazu einfällt, bin für jede idee dankbar. mfg, johannes
Wilst du 39 Byte Zwischenspeichern ?. Die müssten noch in dein Internes RAM passen, dan kannst du die Daten alle auf einmahl abholen. wf
> Wilst du 39 Byte Zwischenspeichern?
nein, 40 mal den zustand der schranken und noch einen zeitstempel (was
der für ein format haben wird => keine ahnung, sagt ihr mir doch wie
ich das speichern soll :)
Damit weis ich aber immer noch nicht wiviel Byte du speichern wils. Aber im zwiefelsfalle kanst du auch extern RAM / EEPROM anschließen. Z.b. über I2C. wf
> Damit weis ich aber immer noch nicht wiviel Byte du speichern wils.
zustand der schranken sind 1 byte.
zeitstempel auch 1 oder 2
@Johannes So richtig komm ich mit Deiner Aufgabenstellung nicht zurecht. Du überwachst 8 Lichtschranken. Ein ATmega8 (1k SRAM) soll verwendet werden. Bei Aktivität an einer Lichtschranke soll ein Zeitstempel und der Zustand aller Lichtschranken hinterlegt werden. Maximal 40 Aktivitäten sollen gespeichert werden. Frage dazu? Wie wünschst Du den Zeitstempel? Jahr, Monat, Tag, Stunde , Minute, Sekunde, ms .... µs ? Bernhard
> Wie wünschst Du den Zeitstempel?
also, auf den gesamtkontext (tag und stunde) kommt es nicht an,
wichtiger sind die 'zeitzwischenräume'
(der ganze vorgang, der überwacht werden soll, dauert höchstens 20
sek)
genauigkeit: ja so genau wies geht ^^
angenommen alle 64 takte wird der zustand überprüft, dann soll im
zeitstempel schon erkennbar sein, dass das eine ereignis einen
(64takt)zyklus davor war.
Das erste Ereignis an einer Lichtschranke, soll das den Zeitstempel "0 µs" erhalten? Das zweite Ereignis den Zweitstempel "xxx µS" ... Das dritte Ereignis den Zweitstempel "xxx µS" ... usw. Das 40. Ereignis (nach max 20s) den Zeitstempel "xxx µs" Anschließend werden die Daten über USART an den PC gesendet, in dieser Zeit wird natürlich keine Lichtschranke abgefragt, und anschließend alle Zeitstempel auf "0" gesetzt? Aufbau Zeitstempel: max 20s, µs genau 20s = 20.000.000 µs = 4-Bit-Zahl Oder habe ich was nicht richtig gedeutet?
genau richtig gedeutet. d.h. dass alles in den ram des atmega passt, oder? dann brauche ja zum glück ich nichts externes...
>dann brauche ja zum glück ich nichts externes... solltest Du auch nicht haben, denn Du hast keine Zeit, etwas extern abzulegen. > dass alles in den ram des atmega passt, oder? Der SRAM des ATmega ist ca. 1k groß. Du benötigst 1Byte für Lichtschranken-Zustand 4Byte für Zeitstempel = 5Byte 5Byte x 40 Aktivitäten = 200 Byte Verbleiben Dir noch 800Byte zur freien Verwendung Bernhard
Zum Schaltplan: Die Stromversorgung vom Max232 ist noch nicht angeschlossen (Pin 15/16). 47pF am Reset ist ganz schön wenig, da sollten eher 10nF sitzen.
> Die Stromversorgung vom Max232 ist noch nicht angeschlossen jo, das ist mir auch schon aufgefallen. allerdings weiß ich nicht wie ich die dinger da mit eagle platzier > 47pF am Reset ist ganz schön wenig, da sollten eher 10nF sitzen. genau, das ist ein fehler in meinem schaltplan und im tutorial, in meinem realen aufbau hängen da 47nF
>jo, das ist mir auch schon aufgefallen. allerdings weiß ich nicht >wie >ich die dinger da mit eagle platzier In der Symbolleiste INVOKE auswählen, dann aufs IC klicken, Pin auswählen, dann kannst du es in die Schaltung setzen. Übrigens kannst du in Eagle auch manuell routen, passend für deine Lochrasterplatine. Solltest halt zuvor auf 2,54 mm Rastermass einstellen.
> In der Symbolleiste INVOKE auswählen, dann aufs IC klicken, Pin > auswählen, dann kannst du es in die Schaltung setzen. joa, dann fliegen sie irgendwo in der schaltung rum, kann man sie nicht einfach neben die anderen pins ins ic setzen?
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.