mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Suche Konzept für Messprogramm (+Schaltplan überprüfen)


Autor: Johannes Permoser (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: walifogel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wilst du 39 Byte Zwischenspeichern ?.
Die müssten noch in dein Internes RAM passen, dan kannst du die Daten
alle auf einmahl abholen.
wf

Autor: Johannes Permoser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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 :)

Autor: walifogel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Johannes Permoser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Damit weis ich aber immer noch nicht wiviel Byte du speichern wils.

zustand der schranken sind 1 byte.
zeitstempel auch 1 oder 2

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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

Autor: Johannes Permoser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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.

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Johannes Permoser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
genau richtig gedeutet.
d.h. dass alles in den ram des atmega passt, oder?
dann brauche ja zum glück ich nichts externes...

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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

Autor: andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Johannes Permoser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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

Autor: andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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.

Autor: Johannes Permoser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.