www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik BTM-222 und MAX3232


Autor: Alexis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich möchte ein BTM222 Modul mit einem AVR koppeln. Kann ich als 
Levelshifter einen MAX3232 benutzen (3,3V - 5V) oder ist der MAX nur zur 
Kopplung an eine RS-232 gedacht?

Gruß
Alexis

Autor: Michael H. (morph1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wähle einen 3V3 volt AVR, alles andere macht nur kummer

und nein, das is nicht der richtige levelshifter :)

Autor: Alexis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Schaltung besteht schon und die muss mit 5V laufen...

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In Richtung zum BTM tun es Spannungsteiler, in Richtung zum 5V-AVR kann 
man die 3V des Moduls noch als High durchgehen lassen. Ansonsten gilt 
zuvor Gesagtes.

Autor: Alexis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab nun einen Spannungsteiler eingefügt und das ganze verkabelt.
Zum Testen habe ich folgendes Programm gefunden:

#include <avr/io.h>

#define SYSCLK    8000000
#define BAUD    115200
#define UBRR_BAUD  ((SYSCLK/(16*BAUD))-1)

/* USART initialisieren */
void uart_init(void);


int main(void)
{
  unsigned char buffer;
DDRA=0xff;


  /* USART initialisieren */
  uart_init();

  while (1)
  {

    /* Warten bis Daten empfangen wurden */
    while (! (UCSRA & (1<<RXC)) )
      ;

    /* Empfangsregister auslesen */
    buffer = UDR;
    PORTA=buffer;

    /* Warten bis der Sendepuffer frei ist */
    while (!( UCSRA & (1<<UDRE)) )
      ;

    /* Daten in den Puffer schreiben und damit senden */
    UDR = buffer;
  }
}

/* USART initialisieren */
void uart_init(void)
{
  /* Baudrate einstellen ( Normaler Modus ) */
  UBRRH = (unsigned char) (UBRR_BAUD>>8);
  UBRRL = (unsigned char) UBRR_BAUD;

  /* Aktivieren von receiver und transmitter */
  UCSRB = (1<<RXEN)|(1<<TXEN);

  /* Einstellen des Datenformats: 8 Datenbits, 1 Stoppbit */
  UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
}




Beim Compilieren schreibt AVR-Studio jedoch:
../Blink.c:24: error: 'UCSRA' undeclared (first use in this function)
../Blink.c:24: error: (Each undeclared identifier is reported only once
../Blink.c:24: error: for each function it appears in.)
../Blink.c:24: error: 'RXC' undeclared (first use in this function)
../Blink.c:28: error: 'UDR' undeclared (first use in this function)
../Blink.c:32: error: 'UDRE' undeclared (first use in this function)
../Blink.c: In function 'uart_init':
../Blink.c:44: error: 'UBRRH' undeclared (first use in this function)
../Blink.c:45: error: 'UBRRL' undeclared (first use in this function)
../Blink.c:48: error: 'UCSRB' undeclared (first use in this function)
../Blink.c:48: error: 'RXEN' undeclared (first use in this function)
../Blink.c:48: error: 'TXEN' undeclared (first use in this function)
../Blink.c:51: error: 'UCSRC' undeclared (first use in this function)
../Blink.c:51: error: 'URSEL' undeclared (first use in this function)
../Blink.c:51: error: 'UCSZ1' undeclared (first use in this function)
../Blink.c:51: error: 'UCSZ0' undeclared (first use in this function)
make: *** [Blink.o] Error 1
Build failed with 15 errors and 0 warnings...

was mache ich falsch?

Autor: 1.8T-Passat (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Undeclared heißt, dass der Name nicht definiert ist. Welchen AVR benutzt 
Du? Du musst im Datenblatt gucken, ob die Register evtl. anders heißen. 
Da gibt´s zum Teil Unterschiede zwischen den AVRs.

Autor: Alexis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Atmega 2560

ich mach mich mal auf die Suche

Autor: Tilo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Versuch mal

#include "avr/io.h"

Autor: Tilo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nee, sorry.
Das würde wohl auch nicht funktionieren.

Autor: Tilo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1.8T-Passat hat recht, die Register heißen anders.
Wenn du die betreffenden Register änderst sollte es funktionieren.

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.