Wie komm' ich an die Daten aus einem 8-Beiner?

Gast #556484
Lesenswert?
• ▲
▼
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?
#556497
Lesenswert?
• ▲
▼
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)

;-)

...
#556521
Lesenswert?
• ▲
▼
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 :)
Gast #556523
Lesenswert?
• ▲
▼
>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.
#556554
Lesenswert?
• ▲
▼
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.

...
Gast #556623
Lesenswert?
• ▲
▼
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!
Gast #556632
Lesenswert?
• ▲
▼
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!
#556646
Lesenswert?
• ▲
▼
> 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.

...
Gast #556932
Lesenswert?
• ▲
▼
So kann's gehen:

1
static uint8_t bit;
2
  uint16_t data = 0b1010101010101010;
3
  
4
  if(bit < 16)
5
  {
6
    if(((uint16_t)data<<bit) & 0b1000000000000000)
7
    {
8
      PORTB |= ( 1<<PB0 );       // high
9
    }
10
    else
11
    {
12
      PORTB &= ~( 1<<PB0 );       // low
13
    }
14
  }
15
  else 
16
  {
17
    PORTB &= ~( 1<<PB0 );       // low
18
  }
19
  
20
  if(bit==50)
21
  {
22
    bit=0;
23
    PORTB |= ( 1<<PB0 );       // high
24
  }
25
  else
26
  {
27
    bit++;
28
  }
#557152
Lesenswert?
• ▲
▼
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.

...

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.