Forum: Mikrocontroller und Digitale Elektronik PORT=not PORT frage


von Wieso??? (Gast)


Lesenswert?

Hallo ich habe eine frage und zwar habe ich mir ein Buch gekauft um 
Bascom zu lernen.Jetzt habe ich ein Programm geschrieben um mit Timer0 
ein Signal für einen Pieper zu erzeugen das klapt auch.Aber gleichzeitig 
habe ich in meiner Hauptschleife den befehl

do
portd.7=not portd.7
waitms 200
loop

Der Timer0 hat eine interrupt routine.

Im Programm sind crystal richtig eingestellt und die Fusebits sind auch 
richtig aber die led blinkt nicht auch wenn ich sie auf eine sek. stelle 
warum?

von Karl H. (kbuchegg)


Lesenswert?

Vielleicht hast du den Port Pin ja nicht auf Ausgang gestellt?


Du hast jetzt schon ein paar mal gepostet.
Eigentlich solltest du schon wissen, dass man komplette Programme 
herzeigt, damit sich die Helfer den nicht gezeigten Rest nicht 
dazuerfinden müssen.

von Wieso??? (Gast)


Lesenswert?

$regfile = "m8def.dat"
$crystal = 3686400

On Timer0 Ontimer0
Ddrd = &B11000000
Config Timer0 = Timer , Prescale = 8
Enable Timer0
Enable Interrupts
'----------------------------------------------------------------------- 
--------
Do
portd.7=not portd.7
Wait 1
Loop
End
'----------------------------------------------------------------------- 
-------
Ontimer0:
Portd.6 = Not Portd.6
Return

von Purzel H. (hacky)


Lesenswert?

Das sollte man nicht so machen. Ueberlegen was genau geschieht und eine 
Hilfsvariable verwenden.


PortD.7:=HVar;
HVar:=not HVar;

von Wieso??? (Gast)


Lesenswert?

So steht es im Buch geschrieben von Roland Walter.

von Karl H. (kbuchegg)


Lesenswert?

Sollte gehen

Die LED ist richtig angeschlossen?

von Wieso??? (Gast)


Lesenswert?

Ja ist richtig angeschlossen an PD7 sie ist auch an aber blinkt 
nicht.Externe quarz ist auch dran und eingestellt.Der Summer geht auch.
Habe es auch schon mit dem toogle befehl versucht

von Yo! (Gast)


Lesenswert?

Die LED blinkt evtl zu schnell und es sieht so aus als wäre sie ständig 
an?

von Karl H. (kbuchegg)


Lesenswert?

Kann ich nicht bestätigen.
Gerade in einen Mega16 gebrannt (hab keinen Mega8 mehr da)
2 LED agieren

die an Pin7 blinkt, so wie sie es soll
die an Pin6 blinkt auch, nur seh schnell, so dass man das Blinken selber 
nicht mehr sieht. Ist aber auch klar, die Timer Interrupts kommen sehr 
schnell.

von Karl H. (kbuchegg)


Lesenswert?

Kann es sein, dass dir dein Summer das System ständig zum Absturz 
bringt?

Wie sieht deine Hardware aus?

von Nikolausi (Gast)


Lesenswert?

'-------------------
Do
portd.7=not portd.7
Wait 1
Loop
End
'-------------------
wenn die LED an PD7 ist, kann es sein das
WAIT 1 einfach nur viel zu kurz ist um
ein Blinken su sehen ?

von Karl H. (kbuchegg)


Lesenswert?

Nikolausi schrieb:
> '-------------------
> Do
> portd.7=not portd.7
> Wait 1
> Loop
> End
> '-------------------
> wenn die LED an PD7 ist, kann es sein das
> WAIT 1 einfach nur viel zu kurz ist um
> ein Blinken su sehen ?

Nope. Die 1 sind hier 1 Sekunde.
Selbst wenn er mit dem Takt grob daneben liegt, blinken muss sie auf 
jeden Fall.

von Wieso??? (Gast)


Lesenswert?

Ja ich hatte vorher wie im Programm ms 200 eingestellt dann habe ich mir 
auch gedacht das sie vielleicht zu schnell ist und auf 1s erhöht

von Karl H. (kbuchegg)


Lesenswert?

Ich tipp eher auf wieder mal nicht verbaute Blockkondensatoren, so dass
der µC ständig resettet, wenn der Summer einschaltet.

von Wieso??? (Gast)


Lesenswert?

Habe jetzt die Startuptime auf 64ms gestellt und siehe da es geht.

von Wieso??? (Gast)


Lesenswert?

Ich habe das Testboard von myavr da sind alle Kondensatoren usw. verbaut

: Wiederhergestellt durch User
von Di P. (drpepper) Benutzerseite


Lesenswert?

Wieso??? entscheidet man sich bloß für Bascom?

von weinbauer (Gast)


Lesenswert?

warum nur tut man sich C an wenn es auch eine schöne Syntax gibt

von weinbauer (Gast)


Lesenswert?

ps:

toggle portd.7

von Karl H. (kbuchegg)


Lesenswert?

weinbauer schrieb:
> warum nur tut man sich C an wenn es auch eine schöne Syntax gibt

Du meinst so wie in BASCOM, wo man keine arithmetischen Ausdrücke mit 
mehr als einem Operator schreiben kann?

(Nichts für ungut, BASCOM ist nicht so schlecht wie sein Ruf hier)

von Wieso??? (Gast)


Lesenswert?

Außerdem finde ich Bascom einfacher zu lernen.Wenn ich dann erstmal raus 
habe wie genau so ein MC funktioniert und einsetzbar ist kann ich immer 
noch C lernen

von Di P. (drpepper) Benutzerseite


Lesenswert?

Wieso??? schrieb:
> Wenn ich dann erstmal raus
> habe wie genau so ein MC funktioniert und einsetzbar ist kann ich immer
> noch C lernen

Da hast du auch wieder recht :)

von Karl H. (kbuchegg)


Lesenswert?

Wieso??? schrieb:
> Außerdem finde ich Bascom einfacher zu lernen.Wenn ich dann erstmal raus
> habe wie genau so ein MC funktioniert und einsetzbar ist kann ich immer
> noch C lernen

BASCOM ist der leichte Weg.
Damit wirst du nicht besonders viel darüber lernen, wie dein µC 
funktioniert.
So wie sich 'Malen nach Zahlen' nicht besonders gut dazu eignet, malen 
zu lernen. Man hat schnelle Erfolgserlebnisse, ja. Aber all die Themen, 
die Malen erst spannend machen: Themenwahl, Licht und Schatten, 
Farbwahl, Bildkomposition, all das hat bereits jemand vorgedacht und so 
aufbereitet, dass man sich keine Gedanken mehr darüber machen muss.

BASCOM ist ähnlich. Für die meisten Dinge, auf die du in nächster Zeit 
stossen wirst, gibt es vorgefertigte Bausteine. Dagegen ist so erst mal 
nichts zu sagen, das garantiert erste Erfolgserlebnisse. Nur Einblicke, 
wie die Dinge funktionieren ... die gewinnt man dadurch nicht.

von Wieso??? (Gast)


Lesenswert?

Ehrlich gasagt hatte ich sogar erst mit C angefangen,aber ich hatte nur 
sehr kleine Erfolge wie z.B. Led anschalten ausschalten und das ganze 
auch mit Taster.Aber das war es auch schon.Mit Bascom habe ich jetzt es 
schon geschaft den Timer/LCD/ADC usw. zu benutzen.Zwar hatten die 
Programme nicht wirklich einen sinn aber zum üben waren sie ok.Mir geht 
es nähmlich tierisch auf die nerven bei C immer auf andere angewiesen zu 
sein.Ich will das endlich mal alleine schaffen irgendwas zu 
programmieren

von Wieso??? (Gast)


Lesenswert?

PS: Man muss ja nicht die Bausteine benutzen wie z.B. beim Timmer
ich kann ja auch die einzelnen Register selbständig Programmieren in dem 
Buch sind immer beide Wege beschrieben

von weinbauer (Gast)


Lesenswert?

Was die Highlevelbefehle angeht, die sind in Bascom wenigstens
dokumentiert, wie viele Threads hier gab's schon von
wegen Funktion X mit Lib von Hans Müller, ich bekomms nicht hin ... ??

Schenkt sich dann auch nix.
Und wie schon geschrieben, den direkten Zugriff auf die Register hat man 
in Bascom auch.
Die Arithmetik ist nervig, zugegeben.

von Karl H. (kbuchegg)


Lesenswert?

weinbauer schrieb:
> Was die Highlevelbefehle angeht, die sind in Bascom wenigstens
> dokumentiert,

nur lesen sie die wenigsten Fragsteller :-)

> wie viele Threads hier gab's schon von
> wegen Funktion X mit Lib von Hans Müller, ich bekomms nicht hin ... ??

Eigentlich relativ wenige.
Die meisten Threads drehen sich um LCD. Und da stellt sich dann oft 
raus, dass der Anschluss falsch war, dass die Taktfrequenz nicht stimmt 
oder dgl.

Und wenn es tatsächlich Fragen nach irgendwelchen Funktionen gibt, dann 
ist das Problem hie wie da dasselbe: Selbstüberschätzung und das 
Nichtlesen von Doku

> Schenkt sich dann auch nix.

Genau

von Wieso??? (Gast)


Lesenswert?

Immerhin schätze ich micht richtig ein!!!

ICH KANN NICHTS :)

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.