PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Print-Befehl bei ATtiny13 überhaupt möglich??



bnitram
22.03.2011, 17:25
Hallo Forum,
ich besitze den ATtiny13V und als Programmer mysmartusb light.
Ich programmiere in Bascom.
Nun zu meiner Frage:
Wie kann ich bzw kann ich überhaupt mit dem Programmer und dem Tiny13 den Print-Befehl nutzen??
Ich würde nämlich gerne einen ADC Port auslesen und mir die Werte zurück geben lassen, damit ich weiß, wann welcher Wert erreicht wird.

Mfg
bnitram

Searcher
23.03.2011, 06:18
Hallo bnitram,


Wie kann ich bzw kann ich überhaupt mit dem Programmer und dem Tiny13 den Print-Befehl nutzen??Ob das mit Deinem Programmer geht, glaub ich nicht. Soweit ich das sehe kann man damit nur programmieren. Ich stand vor dem gleichen Problem und habe mir deshalb eine RS232 Verbindung zum PC geschaffen über die ich dann mit PRINT Daten ausgeben konnte. Vielleicht hilft Dir das weiter:

https://www.roboternetz.de/community/showthread.php?51654-4x7-Seg.-mit-3-Ader-SW-SPI-Einstieg-mit-BASCOM-u.-ATtiny45&p=499518&viewfull=1#post499518

Wenn man aus dem Beispielprogramm nur die Sachen für UART und nur daraus die Sachen zum Senden in Richtung PC verwendet, wird es sehr klein.

Gruß
Searcher

bnitram
23.03.2011, 18:24
Also kann ich das Vergessen ? :(
Gibt es da keine Alternative wie ich das Ausgeben kann??

Mfg
bnitram

Searcher
23.03.2011, 18:39
naja, wenn keiner weis, ob es über den mysmartusb light zur Laufzeit geht, must Du irgendein Display dranbasteln oder den PC als Display nutzen. Oder die Daten im eeprom loggen und dann später über die BASCOM IDE nachschauen.

Gruß
Searcher

bnitram
23.03.2011, 19:10
Sry da ich Frage, aber wie mach ich das mit dem eeprom?
Kennst du eine Seite wo ich das mal nachlesen kann?

Mfg
bnitram

Searcher
23.03.2011, 19:23
Hab ich selber noch nicht gemacht. Man muß aber wohl eine Variable bzw Array mit DIM xyz AS ERAM BYTE/WORD etc... einrichten. Schreibt man darein, landet es im eeprom. Da gibt es vermutlich noch einiges weiteres zu beachten. Mal in der BASCOM Hilfe nachsehen... oder im Forum suchen.

Gruß
Searcher

bnitram
23.03.2011, 20:32
Danke schonmal dafür. Ich werde mich mal informieren und wenn es funktioniert werde ich den Code hier Posten.

Mfg
bnitram

Searcher
24.03.2011, 09:22
Hallo,

ich möchte nochmal ein paar Überlegungen loswerden:

Je nachdem was Du mit dem ADC messen möchtest, könnte die Logging Methode im eeprom nicht so vorteilhaft sein. Da kann man ja nur eine begrenzte Menge an Meßwerten (64 Byte beim ATtiny13) speichern. Das Byte an der Adresse 0 sollte wohl auch nicht verwendet werden, da es beim Reset des Tiny überschrieben werden könnte.

Ist auch noch umständlich den ADC messen zu lassen, dann mit BASCOM IDE nachzusehen, was denn nun im eeprom steht um dann zu erkennen, das die Werte irgenwie unplausibel sind. Das Programm muß ja dann auch dementsprechend "getrimmt" sein. Aufpassen, daß die ERAM Variable zB. nicht in einer oft durchlaufenen Schleife steht, weil der eeprom ja nur eine begrenzte Anzahl mal beschrieben werden kann. Zwar einige 10000 mal, aber wenn man nicht aufpaßt, kann das schon schnell passieren.

Mir scheint die Nutzung des BASCOM Software UART (der Tiny hat keine UART HW Unterstützung) hier die sinnvollste Lösung zu sein. Man kann dann am PC zB im Hyperterminal online die Meßwerte beobachten. An HW braucht man nur einen PIN des Tiny als TX mit zB einem MAX232 IC zu verbinden plus GND Verbindung und von dort aus zum COM Anschluß des PC zu gehen.

Falls kein herkömmlicher COM Anschluß am PC vorhanden ist, könnte man es über ein RS232-USB Adapter versuchen. Ob es da welche gibt, die auf den MAX232 verzichten können und direkt TTL Pegel verarbeiten können und damit direkt mit mit dem µC verbunden werden können, weis ich nicht. Hab da keine Erfahrung mit. Wenn man noch einen zweiten PIN des Tiny spendiert, kann man auch noch gleich Eingaben vom PC zum µC schicken.

Ich hab, als ich das aufgebaut habe, den Pegelwandler aus einem nicht mehr benutztem externen analogen Modem ausgelötet. Ein paar Elkos dazu, Kabel zum PC und fertig. Also falls das PRINT mit dem mysmartusb light nicht zu machen ist, wäre die SW UART auf jeden Fall meine erste Wahl.

Hier noch ein Link, wo es auf Deutsch noch einige Anleitungen dazu gibt. Das ist zwar auf Mega8 und HW UART bezogen. Die Schaltung ist für SW UART gleich und man kann sich die PINs am Tiny mit dem open Komando auch noch aussuchen. http://halvar.at/elektronik/kleiner_bascom_avr_kurs/

Gruß
Searcher

Richard
24.03.2011, 11:20
RDX vom PC ist intern über einen Pull UP auf 12 V kann also die reckt an TDX vom µC gelegt werden. Da RS232 inverse Logik hat muss der µC invertiert senden...


An optional parameter ,INVERTED can be specified to use inverted RS-232.

Open "COMD.1:9600,8,N,1,INVERTED" For Output As #1 , will use pin PORTD.1 for output with 9600 baud, 1 stop bit and with inverted RS-232.


Anders TDX PC -----> RDX µC da muss der nagative Anteil (-12V) von TDX PC mit einer
Diode 1n4148 reicht (Anode an GND Kathode an TDX PC "gekappt werden" die übrig bleibenden -0,6 V kann der µC ab. Zur Strombegrenzung kommt vor RDX µC noch ein 1k8 Widerstand. Günstiger und schneller geht es kaum.

Natürlich auch ..

An optional parameter ,INVERTED can be specified to use inverted RS-232.

Open "COMD.0:9600,8,N,1,INVERTED" For Input As #2 , will use pin PORTD.0 for Input with 9600 baud, 1 stop bit and with inverted RS-232.

Wer diese "inverted" Befehl nicht hat z.B. ASM oder C muss halt jedes zu sendende Byte selber invertieren, Byte = Byte XOR hFF : Print wohin auch immer. :-)

Gruß Richard






Das hat bei mir mit PIC's jahrelang ohne Probleme gelaufen.