Also ich vermute mal, dafür gibt es DebugWire oder so - leider gibt es
noch keinen Artikel zum Software-Debuggen/Entwickeln.
Jedenfalls möchte ich mal sehen, was der ADC so mißt, aber wie?
Messergebnis (10bit) vierteilen und per 8-bit PWM woanders ausgeben?
Bei Tastendruck ins EEprom schreiben und dann mit dem Programmieradapter
auslesen?
Ach, einen 8-Beiner hast Du da also. Das ist ja schön für Dich.
Du bist Dir offensichtlich nicht im klaren darüber, daß es -geschätzt-
10E3 verschiedene Controller in dieser Bauform gibt ...
Also: WAS für ein 8-Beiner soll das sein?
(Sonst steht hier die nächste Steinigung mit Glaskugeln an)
Rufus t. Firefly wrote:
> Ach, einen 8-Beiner hast Du da also. Das ist ja schön für Dich.>> Du bist Dir offensichtlich nicht im klaren darüber, daß es -geschätzt-> 10E3 verschiedene Controller in dieser Bauform gibt ...>> Also: WAS für ein 8-Beiner soll das sein?
Ach Rufus... Es handelt sich doch um einen Tiny13 aus der AVR-Familie,
das weiß doch Jeder... - Oder ist Deine Glaskugel etwa schlecht
gewartet??
>>>> (Sonst steht hier die nächste Steinigung mit Glaskugeln an)
;-)
...
Hannes Lux wrote:
> Ach Rufus... Es handelt sich doch um einen Tiny13 aus der AVR-Familie,
Also ich habe mich jetzt auf den ATtiny25 als 8-Pinner eingeschossen.
Ein 2.Timer, 8MHz intern und Upgrade bis 8kB Flash kann nie schaden.
Peter
Peter Dannegger wrote:
> Hannes Lux wrote:>>> Ach Rufus... Es handelt sich doch um einen Tiny13 aus der AVR-Familie,>>> Also ich habe mich jetzt auf den ATtiny25 als 8-Pinner eingeschossen.>> Ein 2.Timer, 8MHz intern und Upgrade bis 8kB Flash kann nie schaden.
Wow, Du hast upgradefähige Hardware? :)
Aber der OP meinte doch bestimmt AT24C08A oder hatte einfach nur
Langeweile :)
>Jedenfalls möchte ich mal sehen, was der ADC so mißt, aber wie?
Das ist bei 8-Beinern nicht vorgesehen. Deren ADC mißt einfach so vor
sich hin, die Daten können aber nicht weiterverarbeitet werden.
Tri-tra-trollalla...
Koko, ich verwende für Sowas eine synchrone serielle Übertragung ähnlich
dem vereinfachten OWI-Protokoll, aber so langsam, dass es ohne
Rechenzeiteinbuße im Timer-Interrupt laufen kann. Dabei sende ich ASCII
(Text), der von einem "Terminal" (AVR mit LCD und 4 Tastern) angezeigt
werden kann. Das Telegramm umfasst 1 Richtungsbit, 8 Datenbits und eine
Synchronpause von einer Bitzeit. Es "klappert" mit etwa 1kHz vor sich
hin, kann also max 100 Zeichen pro Sekunde übertragen.
Ich benutze es auch bidirektional zum Parametrieren kleiner Steuerungen
mit Tiny13 über das "Terminal". Der eine benötigte Portpin tut dabei
nicht weh, das Impulsmuster wird vom Timer-Interrupt (400Hz, also 4
Interrupts pro Bit) nebenbei erzeugt und belastet den AVR kaum.
...
Ist doch völlig egal, was für einer, wenn's ums Prinzip geht..!?
Aber egal: Ihr hattet Euren Glaskugel-Spaß (wobei ich die 'Formulierung'
wohl eher in einem Computer-Kinder-Forum erwarten würde, als hier von
den kompetenten), und ich weiß ein bißchen mehr. Die serielle Ausgabe
per Software ist mir gar nicht konkret in den Sinn gekommen.
Wie schiebt man denn dann das Wert-Bit an das Ausgangs-Bit?
Danke!
Ah, also das MSB ausgeben, und dann alles nach links schieben. das kann
ich.
Ich hatte gedacht, man kann das vielleicht direkt auf den ausgangs-port
operieren. zu kompliziert für mich. egal.
probier ich mal, dankeschön!
> Wie schiebt man denn dann das Wert-Bit an das Ausgangs-Bit?
Das kommt darauf an, welcher Empfänger verfügbar ist.
Wenn Du an UART und PC-Terminal denkst, dann wirst Du an der
Ungenauigkeit des internen Takt-Oszillators scheitern (oder zumindest
verzweifeln).
SPI-Master in Software ist kein Problem, braucht aber zwei Portpins.
Ich sende vom Master, also vom kleinen Controller, (durch Pause
getrennt) 9 Impulse, bei denen die Information im Tastgrad (25% oder
75%) steckt. Der erste Impuls gibt die Datenrichtung an, legt also fest,
wer Sender und wer Empfänger ist (in Deinem Fall noch nicht relevant).
Die anderen 8 Impulse beinhalten die Datenbits. Die Pause sorgt dafür,
dass der Slave (der Controller mit LCD) weiß, wo ein neues Byte beginnt.
Der Slave sammelt die Bits ein und gibt sie an das LCD aus. Einige
vereinbarte Steuercodes erlauben eine saubere Formatierung der Ausgabe.
Du kannst die Ausgabe aber auch so langsam machen, dass Du die Bitwerte
per Auge mitzählen (und mitschreiben) kannst.
In Deinem Fall (Servoimpulserzeugung) kannst Du den ADC-Wert aber auch
als "Servoposition" ausgeben und statt des Servos ein Oszilloskop oder
ein Multimeter mit Tastgrad-Messung (gibts bei Pollin für um die 13
Euro) anschließen.
Achja, die 8-Beiner AVRs sind nicht alle gleich. In der AT90S-Reihe gibt
es 8-Beiner mit Hardware-UART. Die können also (Quarz vorausgesetzt)
recht einfach über RS232 mit dem PC (Terminalprogramm) kommunizieren.
...
> Ist doch völlig egal, was für einer, wenn's ums Prinzip geht..!?
Na wenn das egal ist, dann nimm einfach den eingebauten UART und schicke
die Daten als Text an den PC.
Na, wenn das nicht egal ist, hätte es doch gereicht, mich zu fragen, ob
mein 8-Beiner keinen eingebauten UART hat.
Dann hätte ich direkt 'nein' geantwortet.
Und?
Die Ausstattung der AVRs ist so unterschiedlich, dass es nur wenige
allgemeingültige Aussagen gibt. Also immer schön konkret benennen um was
es sich im speziellen Fall handelt. Bezeichnungen wie "mein ATMEL" oder
"mein ATMEGA", "mein Mega", "mein Tiny" "(m)ein 8-Beiner" mögen zwar
cool klingen, provozieren aber (berechtigterweise!) zu Widerspruch. Also
nicht aufregen, wenn es Leute gibt, die solchen Kokolores nicht ganz
ernst nehmen.
...