- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 24

Thema: AVR-Datenübertragung

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    37
    Beiträge
    5.093
    @Sauerbruch
    Die Steuerung soll nicht programmiert werden (im herkömmlichen Sinn mit z.B. ISP) sondern es sollen nur Parameter übertragen werden.

    @blacksnake
    Ich habe einen Link gepostet (mikrocontroller.net) hast du den schon angeschaut? Dort hat auch jemand soetwas Ähnliches gesucht.

    MfG Hannes

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Im Prinzip kann man 1wire ja auch nachmachen: Wird die Versorgungsspannung kurz unterbrochen entspricht das einer "1", und eine längere Unterbrechung einer "0". Zum Beispiel 1 ms und 2 ms.

    Die Versorgungsspannung wird wie schon beschrieben mit ´nem Kondensator gepuffert, der für so kurze Zeitintervalle aber keine gigantische Kapazität braucht. Wichtig ist natürlich die Diode davor, damit die gemeinsame Spannungs- und Datenleitung auch wirklich auf Low gehen kann, und nicht vom Kondensator auf High gehalten wird.

    Mit diesen kurzen oder längeren Pausen auf der Leitung machst Du folgendes:

    Beide Flanken triggern einen Interrupt. Bei der fallenden (d.h. der Pin ist Low) wird ein Timer gestartet. Bei der steigenden (Pin = High) wird der Timer gestoppt und abgefragt. Ist er weiter gelaufen als in 1 ms, wird ein entsprechendes Bit auf 1 gesetzt, ansonsten auf 0. Anschließend wird der Timer natürlich wieder resettet für die nächste Runde.

    Gleichzeitig kannst Du noch eine Zählvariable bei jeder steigenden Flanke von hochzählen lassen und aus den einzelnen Bits ein Byte bauen. Ist die Zählvaraible 7, ist das Byte fertig, was dem Hauptprogramm mit einem entsprechenden Flag angezeigt werden kann .

    Das ganze mal als Code (Taktfrequenz z.B. 1 MHz, Interrupt = INT0 = PIND.2, 8-bit Timer0):

    Code:
    Config timer0 = timer, prescale = 64  ' Zählt in 1 ms bis ca. 15, in 2 ms bis ca. 30
    
    Dim My_bit as bit  ' Variable für jedes empfangene Bit
    Dim My_byte as byte  ' Variable für das empfangene Byte
    Dim Byte_ready as bit  ' Flag für fertig empfangenes byte
    Dim I as Byte  '  Zählvariable
    
    
    Config INT0 = Change ' Interrupt 0 bei steigender und fallender Flanke
    On INT0 Flanke
    Enable INT0
    Enable Interrupts
    
    Do
    
    If Byte_ready = 1 then
     Byte_ready = 0
     ...   ' Neues Byte empfangen: Was auch immer damit geschehen soll...
     ...
     ...
    End if
    
    
    Loop
    
    
    Flanke:
    If PIND.2 = 0 then ' fallende Flanke
     Start timer0
    Else  ' steigende Flanke
     Stop timer0
     If timer0 < 20 then My_bit = 1 else My_bit = 0
     timer0 = 0 
     My_byte(I) = My_bit
      If I < 7 then ' Noch keine 8 Bits empfangen
       I = I +1
      Else  ' 8 Bits empfangen: Byte fertig!
       I = 0
       Byte_ready = 1
      End if
    End if
    
    Return

    Edit: Und natürlich ein "Return" am Schluss der ISR...
    Geändert von Sauerbruch (29.04.2012 um 18:26 Uhr)

Ähnliche Themen

  1. Led Datenübertragung
    Von ng_uhg im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 1
    Letzter Beitrag: 06.01.2009, 15:43
  2. Datenübertragung
    Von Mr.T im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 17
    Letzter Beitrag: 05.12.2006, 22:00
  3. TI-83 Plus Datenübertragung
    Von hacker im Forum Elektronik
    Antworten: 10
    Letzter Beitrag: 27.12.2005, 07:54
  4. IR Datenübertragung
    Von blizzard im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 17.06.2005, 17:59
  5. [ERLEDIGT] IR-Datenübertragung
    Von im Forum Sensoren / Sensorik
    Antworten: 0
    Letzter Beitrag: 12.02.2005, 21:00

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test