Forum: Mikrocontroller und Digitale Elektronik Port setzen mit PORTB.1 oder ähnlichem möglich ?


von popi (Gast)


Lesenswert?

Hallo,

kann man mit C und bei einem AVR einen Port direkt setzen, also PORTB1
= 1; oder geht das immer nur über PORTB = 0x01; ???

Gruß

popi

von Rahul (Gast)


Lesenswert?

in Codevision oder Bascom geht es.
Sonst gibt es auch so schöne Konstrukte wie PORTB |= (1<<0); zum Setzen
und PORTB &= ~(1<<0); zum Löschen eines Bits.

von popi (Gast)


Lesenswert?

Danke!

Dachte, es gibt möglicherweise noch elegantere Befehle.

Gruß

popi

von Rahul (Gast)


Lesenswert?

vielleicht solltest du mal einen Blick ins Tutorial werfen...
Du kannst dir auch Makros basteln...

von popi (Gast)


Lesenswert?

... aber ich bin schon froh, wenn ich meine 3 Ports nacheinander
ansprechen kann, was ich schon seit über eine Stunde versuche.

An Makros denke ich erst gar nicht... ;o)


Danke und Grüße

popi

von Marc M. (bytewood) Benutzerseite


Lesenswert?

Hi Popi,
wenn Du gerade mit Mikrocontrollern anfängst, dann kann ich Dir
empfehlen mit Bascom anzufangen (http://www.mcselec.com/).
Es ist zwar nicht kostenfrei, aber die Demo kann bis 4kB Code erzeugen
und ist nicht laufzeitbeschränkt. Bascom (=BASIC) deshalb, weil man
wenig Zeit zur Einarbeitung benötigt und schnell zu Erfolgserlebnissen
kommt. BASIC ist ja schliesslich eine recht leicht zu erlernende
Sprache, wenn Du sie nicht sogar schon kannst. BASCOM/BASIC nimmt Dir
schon viel Arbeit ab (keine Header oder Libs; LCD-Unterstützung, I²C
und noch viel mehr).
Du wirst aber nicht drumherum kommen C zu lernen, denn das ist der
wirkliche Standard. Um also AVRs erstmal kennenzulernen versuch's mit
BASCOM. Wenn Du Dich ein bischen auskennst, dann nimm C.
An alle Anderen: Das spiegelt nur meine Meinung wider, und soll hier
nicht als Anlass zu einer wilden Diskussion werden.
Grüße

von popi (Gast)


Lesenswert?

Hallo Marc,

habe mit BASCOM schon programmiert.
Du habt recht, es ist wirklich einfach.
Aber ich habe eine Fahrradlampe programmiert, also mit einem Knopfdruck
konnte mann zwischen an, blinken, lauflicht, blitz, etc. umschalten. Es
war echt simpel.

Das Problem liegt darin, das ich ein Schulprojekt machen will, indem
BASCOM und dessen Möglichkeiten nicht mehr ausreicht.

Ich denke von der Laufzeit und von compilierten Codeaufwand.

Außerdem, auch wenn der Weg steinig und steil ist, will ich schon was
richtiges lernen, also ASM ider C ;o)

Liebe Grüße

popi

von Marc M. (bytewood) Benutzerseite


Lesenswert?

Hi Popi,
beschreibe doch mal was es werden soll
Gruß
Marc

von Frank (Gast)


Lesenswert?

Ich kann nicht anders als mal wieder auf FastAVR hinzuweisen. Zwar auch
BASIC aber man erhält den ASM-Code ausgegeben und zwar so,dass man
nachvollziehen kann was der BASIC-Compiler gemacht hat. Auf die Art
kann man bequem mit BASIC anfangen zu programmieren und nebenbei noch
den Einstieg in den Assembler finden. Irgendwann findet man es dann
bequemer gleich in Assembler zu schreiben und der Umstieg ist ganz
leicht.

bye

Frank

von popi (Gast)


Lesenswert?

Also, ich habe eine Software geschrieben (in Delphi).
In dieser Software kann man bestimmte Sachen einstellen (einen
zeitplan, wonach Bestimmte Ereignisse an bestimmten Zeitpunkten
passieren). Dann gibt es einen Button, mit dem man diese Parameter zu
dem Controller schicken kann.

Der Controller empfängt das Datenwort, speichert im im EEPROM ab und
liest dann Adresse für Adresse den Speicher aus.

In jeder Speicherzelle werden die ersten 8 Bit ausgewertet. Je nachdem
wie diese stehen, werden bestimmte Ereignisse von dem Controller
ausgeführt. (z.B grob gesagt: ein thermistor misst die außentemperatur
und bei einer änderung um 2-3 Grad, je nach einstellung in der
Software) schaltet der Controller etwas)

Lass mich bitte nicht mehr erklären, es wird sonst kompliziert ;o))

Überlese die rechtschreibfehler, ich lese den Text nicht nochmal durch
oder korregiere ihn ;o)

Liebe Grüße

popi

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.