UART-Sender

Franco41

Neues Mitglied
28. Juni 2010
3
0
0
Sprachen
Hallo,
ich habe Probleme diese Projekt zu vervollständigen.

Hoffen ihr könnt mir helfen :)


'0041.BAS: UART-Sender
'mit Taster 1 wird die Variable um 1 erhˆht und die rote LED leuchtet,
'mit Taster 2 wird die Variable um 1 erniedrigt und die gelbe LED leuchtet,
'Hardware: MAX232 an PD0/PD1, Nullmodemkabel zum PC
' Taster 1 an PD2, Taster 2 an PD3
' rote LED an PD4, gelbe LED an PD 5
'---------------------------------------------------
$regfile = "2313def.dat" 'AT90S2313-Deklarationen
$crystal = 3686400 'Quarz: 3.6864 MHz
 
Hi Franco,

erst mal herzlich willkommen im Forum :flowers:

ich habe Probleme diese Projekt zu vervollständigen.

Hoffen ihr könnt mir helfen :)
das sollte wohl klappen ;) wir helfen gern :)

'0041.BAS: UART-Sender
'mit Taster 1 wird die Variable um 1 erhˆht und die rote LED leuchtet,
'mit Taster 2 wird die Variable um 1 erniedrigt und die gelbe LED leuchtet,
'Hardware: MAX232 an PD0/PD1, Nullmodemkabel zum PC
' Taster 1 an PD2, Taster 2 an PD3
' rote LED an PD4, gelbe LED an PD 5
'---------------------------------------------------
$regfile = "2313def.dat" 'AT90S2313-Deklarationen
$crystal = 3686400 'Quarz: 3.6864 MHz
Das ist allerdings sozusagen bis auf den Titel des Buchs noch nichts. Noch
nicht mal das Inhaltsverzeichnis. Lediglich Kommentarzeilen. Hast du noch
überhaupt kein bischen Code versucht ?

Sind das deine ersten Gehversuche mit Programmierung ? Erzähl mal ein wenig
von deinem aktuellen Wissensstand damit man sich ein Bild machen kann wo
man anfangen muß ...

Gruß
Dino
 
ich habe Probleme diese Projekt zu vervollständigen.

Hallo Franco41 !

Willkommen im AVR-Praxis Forum! :ciao:

Wir würden dir ja gerne weiterhelfen, allerdings fehlen uns hier einige Infos über dich und das Programm. ;)

Es wäre schön, wenn du dich hier erst einmal kurz vorstellst.
So haben wir einen Überblick über deine Fähigkeiten und können dir später auch bestimmt besser helfen.


Ich gehe zur Zeit auch mal davon aus, dass du nicht den kompletten Code gepostet hast, denn....... wie soll ich es sagen..... ich kann in deinem Beitrag kein Programm finden. :hmmmm:


Wie aber oben schon erwähnt, schreib uns doch erst mal etwas über deine Person und deine momentane Erfahrung. :)

Grüße,
Cassio
 
Tut mir leid, leider wusste ich nicht genau wo ich es sonst posten sollte.

Es ist kein vollständiges Projekt von mir. Es ist lediglich eine Hausaufgabe :D
Wir haben auch nur diesen Anfang von unserem Lehrer bekommen und sollen es zuhause selbst versuchen. Leider habe ich nicht wirklich den Durchblick, da ich erst ein paar Stunden mit dem AVR arbeite.
 
Hallo Franco!

Na, dann will ich mal hoffen, dass die Hausaufgabe nicht morgen fertig sein muss. ;)

Finde die Aufgabenstellung aber schon etwas merkwürdig. :hmmmm:
Ihr habt überhaupt noch nichts mit dem AVR gemacht und sollt mal eben ein Programm schreiben? :eek:
Bist du vielleicht ein paar Wochen krank gewesen? :D

Ich denke, das Thema sollten wir hier erst einmal klären.... und ob du allein vor der Hausaufgabe sitzt, oder es "Leidensgenossen" gibt und ihr diese Aufgabe gemeinsam erledigen möchtet.


Gruß,
Cassio
 
Mal ne kurze Bestandsaufnahme ...

Code:
'0041.BAS: UART-Sender
'mit Taster 1 wird die Variable um 1 erhˆht und die rote LED leuchtet,
'mit Taster 2 wird die Variable um 1 erniedrigt und die gelbe LED leuchtet,
'Hardware: MAX232 an PD0/PD1, Nullmodemkabel zum PC
'          Taster 1 an PD2, Taster 2 an PD3
'          rote LED an PD4, gelbe LED an PD 5
'---------------------------------------------------
$regfile = "2313def.dat"             'AT90S2313-Deklarationen
$crystal = 3686400                   'Quarz: 3.6864 MHz
Also ...

Taster1 an PD2 drücken und damit die rote LED an PD4 anschalten und
gleichzeitig mit jedem Tastendruck eine Variable um 1 erhöhen (incrementieren)

Taster2 an PD3 drücken und damit die gelbe LED an PD5 anschalten und
gleichzeitig mit jedem Tastendruck die Variable um 1 verringern (decrementieren)

PD0/PD1 ist erstmal uninteressant (tippe ich jetzt mal).

Sind die LEDs und Taster nach GND (0V) oder Vcc (+5V) geschaltet ?
Dadurch bekommst du entweder ne 0 oder ne 1 in dein Eingangsregister wenn
man den Taster drückt und du kannst die LED entweder mit ner 0 oder ner 1
im Ausgangsregister anschalten. Ne genauere Info über die Schaltung wäre
nicht schhlecht.

Ansonsten ... der AT90S2313 ist bereits Urgestein. Den bekommt man nicht
mehr zu kaufen ( außer evtl bei eBay ;) ) -> Nachfolger ATtiny2313

Ist nen recht schöner kleiner Anfänger-Chip. Nehm ich gerne für Kleinkram.

Mal als Anhaltspunkte ...

1. Variablen deklarieren und auf definierten Anfangswert setzen
2. Port-Pins initialisieren (Eingang/Ausgang/PullUp-Widerstand)
3. Hauptschleife bauen in der das ganze Restgeraffel drin ist.
- also Tasterabfrage, LEDs schalten, Variable +/-1
- Sollen die Taster entprellt werden ?

Ohne die Entprellung sind das so um die 10 Zeilen Quellcode ;)

Gruß
Dino
 
Wir haben schon andere Programme geschrieben. Also ein Basis-Wissen besitze ich schon. Nur diese Aufgabe sagt mit nichts


'0041.BAS: UART-Sender
'mit Taster 1 wird die Variable um 1 erhˆht und die rote LED leuchtet,
'mit Taster 2 wird die Variable um 1 erniedrigt und die gelbe LED leuchtet,
'Hardware: MAX232 an PD0/PD1, Nullmodemkabel zum PC
' Taster 1 an PD2, Taster 2 an PD3
' rote LED an PD4, gelbe LED an PD 5
'---------------------------------------------------
$regfile = "2313def.dat" 'AT90S2313-Deklarationen
$crystal = 3686400 'Quarz: 3.6864 MHz

DDRD = &B00110000
PortD = &B00001100

Dim A As Bit

Do

If PinD.2 = 1 Then
A = A + 1 AND PortD.4 = 1

If PinD.3 = 1 Then
A = A - 1 AND PortD.5 = 1


könnte man das so machen?

EDIT: wir haben nur die AT902313 in der schule :D
 
Hi Franco,



CodeBox BASCOM
'0041.BAS: UART-Sender
'mit Taster 1 wird die Variable um 1 erhˆht und die rote LED leuchtet,
'mit Taster 2 wird die Variable um 1 erniedrigt und die gelbe LED leuchtet,
'Hardware: MAX232 an PD0/PD1, Nullmodemkabel zum PC
' Taster 1 an PD2, Taster 2 an PD3
' rote LED an PD4, gelbe LED an PD 5
'---------------------------------------------------
$regfile = "2313def.dat" 'AT90S2313-Deklarationen
$crystal = 3686400 'Quarz: 3.6864 MHz

DDRD = &B00110000
PortD = &B00001100

Dim A As Bit ' ??? Bit ??? wie soll das zähle ??? 0-1-0-1-0-1-...

Do ' <=== Sieh an ein Do ;-)

If PinD.2 = 1 Then
A = A + 1 AND PortD.4 = 1 ' ??? Was macht AND ??? Lies mal nach ;-)

If PinD.3 = 1 Then
A = A - 1 AND PortD.5 = 1 ' ??? Hier auch ...

' <=== Wo ist der Rest für dein Do ??? ;-)



könnte man das so machen?

EDIT: wir haben nur die AT902313 in der schule :D
Grundansatz ist OK ;) Aber ein paar Abzüge in der B-Note :D
Lies dir mal in der BASCOM-Referenz folgende Themen durch ...
- AND
- IF/THEN/ELSE/ ELSEIF/ENDIF
- DIM
Dann solltet du das Programm zum fliegen bekommen :cool:
Die Referenz gibts beim BASCOM-Hersteller als PDF.
Ich tippe mal das du in Englisch halbwegs fit bist.

Aber die Richtung stimmt schon mal ;)

Gruß
Dino
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)