steuerung von ausgängen am µC per rs232

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 18 4 2024  03:33:30      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte


Autor
steuerung von ausgängen am µC per rs232

    







BID = 526145

thunderbird487

Gerade angekommen


Beiträge: 10
Wohnort: st.pölten
 

  


hallo!
hätte eine frage an die µC-Profis!
kann ich dieses Programm wie es hier ist auf meinen atmega8515 spielen und damit per rs232 die ausgänge schalten??das makefile hab ich auch!
danke







#include <io.h> // Wir brauchen Zugriff auf die I/O's des Controllers

#define F_CPU 6000000 /* 6Mhz */
#define UART_BAUD_RATE 9600 /* 9600 baud */

// Berechnung des Inhalts des UBBR-Registers
#define UART_BAUD_SELECT (F_CPU/(UART_BAUD_RATE*16l)-1)

// Datentypdefinitionen
typedef unsigned char BYTE;
typedef unsigned short WORD;



int main (void)
/****************************************************************************
Hier ist der Programmeinstiegspunkt.
*/
{
/* UART Control Register laden. Wir verwenden (noch)
keine Interrupts. Hier wollen wir nur empfangen, also wird
nur das Receiver Enable Flag gesetzt. */
outp ((1 << RXEN), UCR);

/* Baudrate einstellen */
outp ((BYTE) UART_BAUD_SELECT, UBRR);


// Port B als Ausgang konfigurieren
outp (0xff, DDRB);

// Hier machen wir einmal etwas anderes zur Realisierung der
// Endlosschleife. Wir setzen zu Beginn der Schleife ein Label.
// Am Schleifenende springen wir direkt zu diesem Label.
// Nicht schön, aber unheimlich schnell.
LOOP:
// Prüfen, ob ein Zeichen empfangen wurde.

if (inp (USR) & (1 << RXC)) { // Bit RXC im USR gesetzt ?
switch (inp (UDR)) { // Datenregister auslesen
case '1': // LED einschalten
sbi (PORTB, PINB0);
break;
case '0': // LED ausschalten
cbi (PORTB, PINB0);
break;
default: // Bei allen anderen Zeichen nichts tun
break;
}
}

goto LOOP;

} /* end of main */


BID = 526147

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach

 

  

Direkt an die Pins des Prozessors solltest du RS232-Pegel nicht anschliessen denn das bringt ihn möglicherweise um.
Da gehören spezielle Treiber- und Empfängerchips hin, die die Pegelumsetzumg machen und in aller Regel das Signal dabei invertieren.

Das Programm debuggen musst du schon selbst erledigen.

_________________
Haftungsausschluß:



Bei obigem Beitrag handelt es sich um meine private Meinung.



Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.



Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !

BID = 526194

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

Erstmal so zum Anfang:
1. Es wäre angenehm, wenn du die Regeln der deutschen Rechtsschreibung einhalten würdest. Groß- und kleinschreibung wurde ja nicht scherzhaft erfunden und Interpunktion hilft extrem, den Sinn eines Textes zu verstehen bzw. ihm erst einen zu geben. Schließlich soll sich jemand die Texte durchlesen.
2. Du hast uns nur einen Teil des Quelltextes gezeigt, es fehlt der Kopf:


Code :


/****************************************************************************
UART.c
------
Übungsprojekt zum Empfang von Daten mit dem UART.
Eine LED an Pin 0 von Port B soll gesteuert werden beim Empfang
folgender
Zeichen:
'1' - LED ein.
'0' - LED aus.


Autor: Christian Schifferle
Datum: November 2002
Software: AVR-GCC
needed
****************************************************************************/


Das gehört sich nicht, da es den eigentlichen Autor nicht erwähnt.
3. Der Kode ist schon länger nicht mehr aktuell, da er inp und outp benutzt, was mittlerweile obsolet geworden ist.
4. Beschreibe dein Problem mal genauer: in diesem Programm wird überhaupt nur ein Pin geschaltet, und zwar anhand der Informationen, die über die UART eintreffen, steht so auch im Kopf...
Du kannst es beliebig anpassen, um andere Pinnen/ganze Ports zu schalten.
Du musst aber das Programm auch an das Zielsystem (dein AVR) anpassen: vorerst prüfen, ob alle Registernamen wie USR und Bitnamen (RXC) mit den Beschreibungen im Datenblatt übereinstimmen. Weiterhin muss dem Compiler/Kompilierer mitgeteilt werden, auf welchem AVR das Programm laufen soll. Das sollte in deinem, sinnigerweise vorenthaltenem Makefile stehen. Dies wird später dem avr-gcc weitergegeben mit -mmcu=m8515.



_________________

BID = 526209

Ltof

Inventar



Beiträge: 9268
Wohnort: Hommingberg


Offtopic :
@DonComi

Das Wort "Kleinschreibung" wird groß geschrieben.


_________________
„Schreibe nichts der Böswilligkeit zu, was durch Dummheit hinreichend erklärbar ist.“
(Hanlon’s Razor)

BID = 526212

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika


Offtopic :
Ja, ist halt ein, ironischerweise genau hier passierter Fehler meinerseits. Kommt vor.


_________________


[ Diese Nachricht wurde geändert von: DonComi am  5 Jun 2008 21:14 ]

BID = 526219

Jornbyte

Moderator



Beiträge: 7074


Zitat :
Das gehört sich nicht, da es den eigentlichen Autor nicht erwähnt.

Der ist lesbar im Code....

Zitat :
/****************************************************************************
UART.c
------
Übungsprojekt zum Empfang von Daten mit dem UART.
Eine LED an Pin 0 von Port B soll gesteuert werden beim Empfang
folgender
Zeichen:
'1' - LED ein.
'0' - LED aus.


Autor: Christian Schifferle
Datum: November 2002
Software: AVR-GCC
needed
****************************************************************************/


_________________
mfg Jornbyte

Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.

BID = 526224

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

Achne,

Ich hatte auch bemängelt, dass er den Kopf, indem der Autor genannt ist, großzügig ausgelassen hat.
Freundlicherweise habe ich dann diesen Kopf nachgereicht, schließlich weiß auch ich mit Suchmaschinen umzugehen... und gelesen habe ich den auch.

[ Diese Nachricht wurde geändert von: DonComi am  5 Jun 2008 21:46 ]

BID = 526233

Jornbyte

Moderator



Beiträge: 7074

Ja, entschuldige. Im nachgang hab ich gesehen, war ja von dir.

_________________
mfg Jornbyte

Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.

BID = 526235

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika


Offtopic :
Macht ja nichts


_________________


Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 24 Beiträge im Durchschnitt pro Tag       heute wurden bisher 1 Beiträge verfasst
© x sparkkelsputz        Besucher : 180915611   Heute : 505    Gestern : 9237    Online : 300        18.4.2024    3:33
1 Besucher in den letzten 60 Sekunden        alle 60.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0603699684143