Forum: Projekte & Code Ein kleines Projekt für BASCOM Änfänger


von Thomas (Gast)


Angehängte Dateien:

Lesenswert?

Nun habe ein kleines Uhrprojekt für Änfänger hier, für die, die gerade 
die ersten Schritten machen möchten.

Es ist eine kleine Uhr auf eine Atmega8 und eine 2x16 LCD Anzeige.

Angezeigt wird erstmal die aktuelle Uhrzeit, einstellbar über 2 Tasten, 
sowie die Alarmzeit in Stunden und Minuten, ausserdem die Zeit wann die 
eingestellte Zeit erreicht wird.

in der Zip Datei ist der Bascom Code ,alles dokumentiert, HEX File sowie 
Schaltplan und Layout.

Klar, mann den Code optimieren, vorallem besser lösen. !!!! Ich denke 
für Änfänger als erstes Projekt ist durchaus geeignet.

: Verschoben durch User
von roboter (Gast)


Lesenswert?

Setzt das mal mit Winavr-c um !
Bascom interessiert kein oder wenige.

Bei Bascom weiss man nie genau, was diese vorgekauten Befehle für ein 
Schmutz produzieren.

Gruss

von Echo (Gast)


Lesenswert?

Geh woanders rummosern roboter! Viele benutzen BASCOM und C ist 
letztlich nichts anderes. Jetz fängt bestimmt gleich wieder das 
rumgeheule der Programmierer an, das die ja total unterschiedlich seien.

von Stefan W. (wswbln)


Lesenswert?

@roboter:

Lass' ihn doch mit der Programmiersprache anfangen, die ER möchte. Wenn 
Du ihn für C begeistern willst, tu das doch lieber mit guten Argumenten 
als mit destruktiver Mäkelei.

Wenn Du aber Interesse an einer C-Variante seines Programmes hast, 
empfehle ich die "Methode Bauhaus" (do it yourself). Du kannst es 
anschließend ja wieder hier reinstellen...

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Naja, wer Bascom lernen möchte weil ihm C zu schwierig ist, bekommt die 
Rechnung halt später, also was solls...

von Giuseppe G. (Firma: ACS) (gcrax)


Lesenswert?

Gutes Projekt Großer Mann :-)
lass dich nicht runterkriegen von den hochnäßigen C-Programmierer, auch 
wenn ich leider auch dazu gehöre :-)
ich hab auch mit bascom angefangen und wie üblich sagt man ja nicht 
umsonst, "step by step zur million" :-)

ich werd mal das ganze spaßhalber mal aufbauen und dann mal sehen, was 
du tolles hinbekommen hast :-)

mir fällt nur auf dem ersten blick auf, das du deine fusebits mit 
ponyprog programmierst, warum das denn, wenn du eh schon bascom hast??? 
:-)

von Thomas Kiss (Gast)


Lesenswert?

@ G.G

Danke für die nette Worte....

Ich habe schon vorher geschaut, was für MICH das einfachste wäre, so 
habe ich mich für BASCOM entschieden, wo ich bis heute zufrieden bin.

Die Schaltungen, die ich für mich bauen wollte, habe soweit alles 
hinbekommen. Es funktioniert so wie ich es wollte, klar habe ich auch 
gesagt, wenn ein Profi es anschaut, denkt...naja...aber für mich war 
wichtig, die Grundlagen ( Timer, Tastarabfragen, LCD ) umsetzen kann.

Dieses Projekt ist mein aller erstes.

Von Anfang an benutze ich also Bascom, PonyProg und Eagle. diese 
Kombination ist für mich OK, kenne mich mittlereweiler gut aus.

Ich dachte, es gibt genügend Jungs, die bei Null stehen, und möchten 
erstmal eine Uhr bauen..Nicht gleich mit DCF und Softclock..und was 
weiss ich alles...

von Giuseppe G. (Firma: ACS) (gcrax)


Lesenswert?

@thomaskiss

Freut mich, das du gleich beim ersten Projekt auch so hartnäckig an der 
Sache bleibst und sie auch erfolgreich zu ende führst...

Du hast recht und das wiederhole ich auch immer wieder, wenn jemand 
seine gewohnheiten hat, niemals versuchen sie zu ändern, das kann, aber 
muss nicht schief gehen...
trotzdem würd ich dir empfehlen deine fusebits mit bascom selbst zu 
programmieren, da du da wenigstens eine erklärung zu den jeweilign 
fusebits hast und meiner ansicht nach "einfacher" ist :-)

was mir so spontan zu deiner schaltung einfällt...
hmmm, warum baust du nicht eine usb-steuermöglichkeit ein?? oder 
vielleicht ne möglichkeit sie per IR-Fernbedienung steuert zu können, 
oder wag dich doch auch mal an sowas wie dcf77 usw...
hat für dich doch nen gewissen reiz denk ich mal, DEINE Schaltung immer 
weiter zu vertiefen, ausbauen, oder zu entwickeln???
vielleicht jetzt wo de schon blut geleckt hast mit bascom und Co.???

Lass mich wissen, was daraus wird und wenn ich helfen kann, einfach 
melden :-)


PS: Mein kleiner freut sich mit mir DEIN Projekt zu bauen, wenn ich das 
natürlich darf??? :-D

von Joe (Gast)


Lesenswert?

Wieviel Sprachen haben denn die C-Vertreter sonst schon bewältigt?

Da schrieb vor kurzem in diesem Forum ein C'ler, dass er einen 
Bascom-Code nicht versteht.
Und diesen Eindruck habe ich von vielen Vertretern in diesem Forum.

C hat sicher seine Reize, aber die Syntax ist eine Katastrophe.
Da wird die Eignung für elementare Aufgaben angepriesen, aber dafür 
greife ich persönich lieber zu Assembler.

Nach Erfahrungen mit Algol (ja, so was gabe auch mal), Fortran, Cobol 
und Modula-2 kamen dann noch Lisp und Pascal sowie Delphi.

Aber für den Einsatz auf einem µC ist BASCOM in der Handhabung optimal.
Dabei ist es nicht von Bedeutung, dass man in C z.B. zwei Zeilen weniger 
benötigt oder angeblich einen viel sichereren Code erzeugt..

So gibt es auch viele große Projekte, die problemlos mit BASCOM erstellt 
wurden. Mit BASCOM ist genau so jedes Bit persönlich zu erreichen, wie 
das in C auch der Fall ist.

C ist halt das chinesisch unter den Sprachen, aber wer lernt das schon 
für µC-Projekte. Ich habe es wieder zur Seite gelegt.
BASCOM ist für Beginners und! Fortgeschrittene.
Und wenn ich eine saubere Struktur oder spezielle Datentypen haben 
möchte, dann greife ich auf PASCAL zurück.

Joe

von Thomas Kiss (Gast)


Lesenswert?

Hallo G.G....super nett Danke !!!

Selbstverständlich wird das Projekt erweitert.....(jede Idee ist 
willkommen )

als nächstes werde ich das Layout ändern ( LCD Anschluss ) ich brauch 
den PWM Ausgang von Atmega.

Ich möchte das Layout auch als Multi Board gestallten.so daß man für 
andere Zwecke benutzen kann...werde ich posten..

meine nächste Idee wäre, 1 Minute vor dem Erreichen des Alarms soll die 
LED "pulsen"....ich bin grade am überlegen , wie die Logik aussehen muss
1 Minute weniger ????

Momentan ist es so , Alarm = beiden Zeiten identisch....

Ausserdem ist mir noch aufgefallen, wenn die Uhr eingeschaltet wird, 
sind die Zeiten Uhr und Alarm 00:00:00 also erstmal pieps.....

DCF kommt auch, noch keine Erfahrung ( bloss etwas bereits nachgebaut 
von (http://s-huehn.de/elektronik/)

Was auf jedenfall noch kommen wird, die Einstellung soll nicht mit 
Tasten sondern mit einem Drehgeber sein...

Frage : Passt dies hier für sowas ?

http://www.reichelt.de/?;ACTION=3;LA=5;GROUP=B29;GROUPID=3714;ARTICLE=73915;START=0;SORT=user;OFFSET=500;SID=31rzB2E6wQAR8AACDk@wYb98f5a7e2ecdbb9016d29eb0b3727ed8

von tatsch (Gast)


Lesenswert?

"C ist halt das chinesisch unter den Sprachen"

lol!

und ich dachte, es steht für "cryptic" - aber siehe da - es steht für 
"chinese"

von Thomas Kiss (Gast)


Lesenswert?

Ich tue mich schwer mit C, weil die "Befehle" nicht "lesbar" sind wie 
bei BASCOM , ausserdem denke ich, die Sachen die für mich interresant 
sind, sind mit BAscom lösbar.

für mich ist es wichtig, daß ich jede Zeile selber verstehe...was genau 
dort passiert..

If, then....

von Frank (Gast)


Lesenswert?

Hi,

und es wurde von dir in BASCOM sauber programmiert. Übersichtlich und 
für jeden Anfänger sicher nachvollziehbar. Solange genügend MC Flash 
Speicher zur Verfügung steht ist das eh kein Problem. Diese kleinen 
Kerlchen sind gut für diese Art der Programmiersprache geeignet. Ich bin 
zwar ein Assembler Programmierer, weils mir halt spass macht, dennoch 
würde ich bei kleinen komplexen Programmen ebenfalls BASCOM nutzen. Ist 
einfach, übersichtlich und verständlicher.

Mir gefällt dein Programm.

Gruß Frank.....

von Thomas Kiss (Gast)


Lesenswert?

Danke Frank es ist schön zu hören, daß auch Leute gibt, die mal sagen, 
es ist okay was man gemacht hat, leider gibt es viele Leute die gleich 
loslegen, hier und da eine Zeile weniger ist besser oder sollte man 
irgendwelche "exotische" Befehle verwenden weil..usw...oder wenn in C 
nehme oder assembler....

Ich habe erstmal ganz einfach gemacht, if Taster=0 then...

dann habe ich mit Subs angefangen..Step by Step..langsam...aber sicher

Klar meine Frau sagt auch..Tagelang mit einer Uhr sich beschäftigen 
wobei schon sowas für 2.99 kaufen kann....

von U.R. Schmitt (Gast)


Lesenswert?

tatsch schrieb:
> "C ist halt das chinesisch unter den Sprachen"

tatsch schrieb:
> und ich dachte, es steht für "cryptic" - aber siehe da - es steht für
> "chinese"

ROFL,

nein C steht für "abc..." weils so einfach ist wie das ABC.
und BASCOM steht für "COMplicated" weil Du keine Ahnung hast wie das 
Basic die Anweisungen im Controller umsetzt, und Du dich dann wunderst, 
daß 3 kleine Zeilen Code über 1000 Taktzyklen brauchen.
duck und weg :-)))

von Thomas Kiss (Gast)


Lesenswert?

warum einige hier immer was zum meckern haben....????

von U.R. Schmitt (Gast)


Lesenswert?

Thomas Kiss schrieb:
> Klar meine Frau sagt auch..Tagelang mit einer Uhr sich beschäftigen
> wobei schon sowas für 2.99 kaufen kann....

Aber Du kannst jetzt so eine Uhr bauen und verstehst was da alles 
dazugehört. Die anderen können sie nur kaufen.
Also viel Spass beim Basteln und programmieren, egal ob in BASCOM, C, 
Assembler, AVR-Algol oder AVR-Lisp.
Grüße

von weinbauer (Gast)


Lesenswert?

U.R. Schmitt schrieb:
> daß 3 kleine Zeilen Code über 1000 Taktzyklen brauchen.

da gibts in C aber auch prominente Beispiele dafür :)

printf ?¿

Wenn Müll programmiert wird ist das wurst ob in "C", ASM oder Basic und 
jeder sollte das nutzen was ihm am Besten liegt.
Meine Güte, ist ja mal wieder n Glaubenskrieg.

von U.R. Schmitt (Gast)


Lesenswert?

weinbauer schrieb:
> Wenn Müll programmiert wird ist das wurst ob in "C", ASM oder Basic und
> jeder sollte das nutzen was ihm am Besten liegt.
> Meine Güte, ist ja mal wieder n Glaubenskrieg.

Welcher Glaubenskrieg? Von mir nicht, der dicke Smilie war doch wohl 
nicht zu übersehen.

von Thomas Kiss (Gast)


Lesenswert?

@Weinbauer..hast schon richtig gesehen, es kommt wirklich oft vor, wenn 
jemand ein Problem hat, dann von 10 antworten sind 5 mit Antworten die 
nicht zum Thema oder Problem passen....

Es wäre besser hier im Forum die Theman evtl, nach Sprache trennen...

Ich merke auch es gibt sehr grosse Unterschiede was Kenntnisstand 
anbelangt...es ist auch super so, aber ein Profi sollte auch mal 
einsehen oder schätzen, wenn jemand erst anfängt, daß man andere 
Probleme hat.

Led ein und aus schalten oder modifizierung eines Fluxkompensators !!

von Giuseppe G. (Firma: ACS) (gcrax)


Lesenswert?

@all
Also jungs, sind wir hier aufn wurstmarkt wo man sich um die heisseste 
wurst bekriegen muss???
Lass doch den armen kerl endlich sein zeug programmieren wie ER es will 
und nicht wie DU es bestimmen MUSST...
ich sag doch immerwieder diese scheiss gesetzgebung von allen, jeder 
will es besser wissen...

Wie ihr sehn könnt, gibt es DOCH noch leute, die sich WAHNSINNIG GERN 
mit dem BASCOM-SCH***-Dreck beschäftigen....
Ihr seit unmöglich ey...

@Thomas
Mach weiter so Großer, ich steh hinter dir und geb dir Rückendeckung :-D

Zu deinem Drehimpulsgeber, er scheint soweit ganz passabel für deine 
Idee zu sein, wenns funzt, bescheid geben, werd mir dann mal auch welche 
besorgen, da die Idee doch gut klingt :-)
Achte auf die richtige umsetzung der PWM Geschichte, da ich oft schon 
damit probleme hatte, weil AVRs im allgemeinem ein wenig "zicken"...

Das mit der Mitute vorher...
Hmmm, ich würde sagen, definier mal eine extra variable mit dem Inhalt 
der ankündigungszeit... so in etwa wie... Alarm um 12.14h...Variable 
12.13h... wenn der wert bedeckt/erreicht ist, dann löst du einfach eine 
subroutine aus und voila :-)

>Ausserdem ist mir noch aufgefallen, wenn die Uhr eingeschaltet wird,
>sind die Zeiten Uhr und Alarm 00:00:00 also erstmal pieps.....
Wie wärs wenn du eine batterie als puffer einbaust, so wie auf dem 
PC-Mainboards?? Dann läuft nur der Prozessor im hintergrund, keine 
anzeigen und deine uhrzeit bleibt auch bei stromausfall erhalten?? oder 
du nutzt einen eeprom???


>Klar meine Frau sagt auch..Tagelang mit einer Uhr sich beschäftigen
>wobei schon sowas für 2.99 kaufen kann....
Frag sie doch mal, warum sie soooooo viele schuhen oder taschen besitzt, 
wenn sie mit einer einzigen auch auskommen kann...
Dann wird sie dir antworten, das sie diese braucht :-)
Du ja deine Uhr auch, um zu lernen, wie die hintergründe der elektronik 
aussehen :-D

von Thomas Kiss (Gast)


Lesenswert?

Smile...smile. G.G...thanx.....

G.G bist fit in Bascom ????

Naja erstmal werde ich mich in PWM einlesen, also Standard aufbau mit 
einem LED machen, mal sehen wie ich die zum Langsam hoch und runter 
dimmen kann, wenn ich es komplett verstanden habe, werde ich dann diese 
"SUB" dann integrieren...dann geht es weiter, daß ein pulsierende LED 
als Voralarm gibt...

Drehgeber muss ich noch bestellen, aber ich habe dies als 
"zwischenprojekt" eingeschoben :

siehe hier : Hammerteil fürs Geld !!!

http://www.qube-solutions.de/shop/show_product.php?cPath=83&products_id=211

von Thomas Kiss (Gast)


Lesenswert?

Das mit der Mitute vorher...
Hmmm, ich würde sagen, definier mal eine extra variable mit dem Inhalt
der ankündigungszeit... so in etwa wie... Alarm um 12.14h...Variable
12.13h... wenn der wert bedeckt/erreicht ist, dann löst du einfach eine
subroutine aus und voila :-)

Hmm..grübel...
Momentan :

If Stunde = Tstunde And Minute = Tminute And Sekunde = Tsekunde Then

'Ankündigung :

if stunde = Tstunde
 if Minute- Tminute = 1

Also so ganz grob, wenn die beiden Stunden gleich sind und wenn Minute 
minus alarm Minute als Ergebnis 1 kommt..dann..so müsste die Rechnung 
aufgehen...

von Karl H. (kbuchegg)


Lesenswert?

Thomas Kiss schrieb:
> Das mit der Mitute vorher...
> Hmmm, ich würde sagen, definier mal eine extra variable mit dem Inhalt
> der ankündigungszeit... so in etwa wie... Alarm um 12.14h...Variable
> 12.13h... wenn der wert bedeckt/erreicht ist, dann löst du einfach eine
> subroutine aus und voila :-)
>
> Hmm..grübel...
> Momentan :
>
> If Stunde = Tstunde And Minute = Tminute And Sekunde = Tsekunde Then
>
> 'Ankündigung :
>
> if stunde = Tstunde
>  if Minute- Tminute = 1
>
> Also so ganz grob, wenn die beiden Stunden gleich sind und wenn Minute
> minus alarm Minute als Ergebnis 1 kommt..dann..so müsste die Rechnung
> aufgehen...

Achte auf die Sonderfälle beim 'Überläuf' von Minute 59 zu Minute 0!

deine T Zeit sei 1:00
Deine aktuelle Zeit sei 0:59

löst du damit einen Voralarm aus oder nicht?
Die Stunden sind nicht gleich und die Minutendifferenz ist laut deiner 
Rechnerei auch nicht 1. Trotzdem liegen die beiden Zeitpunkte nur 1 
Minute auseinander.


Hinweis: gerade bei Zeiten ist es oft einfacher, sich Stunden und 
Minuten zu einer Minutenzahl seit Mitternacht umzurechnen. Dann ist man 
zumindest die Sonderfälle, dass 0:59 und 1:00 nur 1 Minute auseinander 
sind, los. Es bleibt nur noch Mitternacht als einzelner Sonderfall, und 
der ist meistens nicht so tragisch.

von Giuseppe G. (Firma: ACS) (gcrax)


Lesenswert?

@Thomas
>Hmm..grübel...
>Momentan :
>
>If Stunde = Tstunde And Minute = Tminute And Sekunde = Tsekunde Then
>
>'Ankündigung :
>
>if stunde = Tstunde
> if Minute- Tminute = 1

Müsste so in etwa sein ja, probiers einfach mal aus :-)
Ich bin zwar fit in bascom, aber auch kein profi...

Das mit der PWM sollste auch hinbekommen können, allerdings würde ich 
sagen, bau das softwaremäsig auf, sonst wirst du zeitverschiebungen 
aufgrund deiner quarzwahl haben...

Der Cube sieht auch hammer aus ja, aber is es nicht reizender ihn mal 
selbst aufzubauen?? :-)
Erfahrung zur Million haste ja schon bissel :-)
Wenn de dann noch H-PWM kannst... :-)

Wie wäre denn eine USB-Anbindung für dein Projekt??
Sodas sich die Uhr automatisch mit deinem PC syncronisiert?? Möglichkeit 
zur Million ausnutzen, dann kann dir keiner mehr was sagen das BASCOM 
nix taugt?? :-)

von Thomas Kiss (Gast)


Lesenswert?

Absolut korrekt und sehr guter Hinweis, also ab Mitternacht rechnen.

werde ich genau anschauen, die Umrechnung evtl in ein SUB packen...

musss auch mal sehen, ob es sinnvoller ist, die Komplette Alarm Ausgabe 
und den Voralarm umzurechnen oder nur den Voralarm...


TTTHHHHHHHHHHHXXXXXXXXXXXX

von Thomas Kiss (Gast)


Lesenswert?

@ G.G...

klar es wäre Hammer wenn man sowas selber komplett bauen könnte ( es 
gibt in Korea sogar ein 16x16x16 Cube !!!

Jetzt kommt das aber, bei Qube bekomme ich auch noch ein super Programm 
wo man die Figuren in 3D selber erstellen kann und klick und 
fertig..sowas kann ich definitiv nicht machen...

Ich habe mal den Chef von Qube gefragt ob eine 5x5x5 als RGB geplant 
ist, leider noch nicht....

PWM Ja, ich habe schon gelesen, dass ich es mit Software gemacht werden 
sollte..ich muss aber mich erstmal in den Grundlagen weiter einlesen
(http://www.roboternetz.de/wissen/index.php/Bascom_und_PWM)
und vorallem ich probieren immer viel drum herum aus...so nach dem Motto 
was passiert wenn ich dies oder jenes verändere..dann mach ich kurz 
zusatzbeschreibungen für mich..


Interresant wäre hier mal so ein CUBE RGB Projekt zu starten !!!!!

Es gibt mit Sicherheit Leute die es "nur kaufen" möchten !!

von Giuseppe G. (Firma: ACS) (gcrax)


Lesenswert?

>Interresant wäre hier mal so ein CUBE RGB Projekt zu starten !!!!!
>Es gibt mit Sicherheit Leute die es "nur kaufen" möchten !!

Klar gibt es die bestimmt, aber ganz ehrlich?? wäre mir echt zuuuuu 
anstrengend, da es doch schon ne nummer größer ist, als so ne kleine uhr 
oder so, ich muss auch sehen, das mein laden läuft, da ich selbstständig 
bin, aber wenn du möchtest, gern warum nicht mal was neues probieren :-)
Lösungsansätze??? :-)
LG
G-Crax

von Karl H. (kbuchegg)


Lesenswert?

Thomas Kiss schrieb:

> klar es wäre Hammer wenn man sowas selber komplett bauen könnte ( es
> gibt in Korea sogar ein 16x16x16 Cube !!!

Es gibt auch noch größere.
Aber rechne dir einfach mal aus, wieviele LED das sind.
Danach sieht die Welt schon wieder ganz anders aus :-)


> PWM Ja, ich habe schon gelesen, dass ich es mit Software gemacht werden
> sollte..ich muss aber mich erstmal in den Grundlagen weiter einlesen
> (http://www.roboternetz.de/wissen/index.php/Bascom_und_PWM)
> und vorallem ich probieren immer viel drum herum aus...so nach dem Motto
> was passiert wenn ich dies oder jenes verändere..dann mach ich kurz
> zusatzbeschreibungen für mich..

Das ist der richtige Weg!
Vor allem der erste Teil, der mit den Grundlagen.

> Interresant wäre hier mal so ein CUBE RGB Projekt zu starten !!!!!

Gibts doch.
So ein kleiner Cube ist nicht so wild. Sobald du genügend viele PWM 
Stufen in Software machen kannst und abgeklärt hast, wie du den Cube per 
Multiplex ansteuern musst, ist der Rest Handwerk. Multiplex kann man 
aber auch mit ein paar 7-Segment Anzeigen lernen. Ist im Grunde das 
gleiche, nur das die LED anders angeordnet sind.

> Es gibt mit Sicherheit Leute die es "nur kaufen" möchten !!

Es gibt auch Firmen die solche Cubes gewerblich herstellen und 
verkaufen.
Eine Kleinfertigung für 10 bis 20 potentielle Käufer lohnt nicht 
wirklich, wenn du damit ein bischen was verdienen willst.

von Thomas Kiss (Gast)


Lesenswert?

Interresant....

Es gibt auch Firmen die solche Cubes gewerblich herstellen und
verkaufen.
Eine Kleinfertigung für 10 bis 20 potentielle Käufer lohnt nicht
wirklich, wenn du damit ein bischen was verdienen willst.

Naja es gehtnicht primär darum ( Geld ) sondern wie es gemacht wird, 
aber klar die Leute die wirklich sowas komplett selber entwickeln können 
beschäftigen sich eher mit anderen Sachen...

Ich habe mal bisschen herumgeschaut, es gibt unmenge an diskussionen,

(http://www.ledstyles.de/ftopic5781.html)

dass jeder sowas bauen will, aber ein "fertiges" Projekt habe noch nicht 
gesehen..

von Karl H. (kbuchegg)


Lesenswert?

Thomas Kiss schrieb:

> dass jeder sowas bauen will, aber ein "fertiges" Projekt habe noch nicht
> gesehen..

Selbst ist der Mann.
Malen nach Zahlen ist doch fad :-)

von Giuseppe G. (Firma: ACS) (gcrax)


Lesenswert?

so siehts aus Thomas :-)
wir sind ja da um zu lernen :-D

aber ganz ehrlich, es is ein wunderschönes projekt, was mich natürlich 
auch irgendwo fasziniert...
Nur...???
Hmmm...
Kein Plan...

Mal anders rum gefragt, wie würdest du es denn realisieren wollen??
Schon gedanken gemacht???

von Thomas Kiss (Gast)


Lesenswert?

G.G....

klar erstmal macht man Aufwandabschätzung = Bausatz bestellen...

Naja habe gerade mit CNC eine Schablone machen lassen...Ultrahelle LED 
bei Ebay....so kostet der Bausatz dann komplett mit allen teilen 80 €

Mann kann zwar noch hergehen, ohne Atmega bestellen, die Hex Files kann 
man vom Shop selber herunterladen....oder man kauft die perfekt gemachte 
Platinen. Ich finde Preis und Leistungverhältnis ist echt okay !!!!!


Am Tag X wenn ich PWM gut beherrsche, weiss wie es funzt, dann probiere 
dann die Multiplexing aus.....dann nehme ich einen RGB led und werde 
probieren wie ich selber eine Autofading machen kann also von Farbe X 
bis Y...

Wäre das gleiche wie die Audiofreaks evtl, es sehen. Verstärker bauen...
Tagelang mit Brummen und Rückkopplungen kämpfen oder vor 500 Euro einen 
Yamaha Verstärker kaufen..LoL

von Giuseppe G. (Firma: ACS) (gcrax)


Lesenswert?

na wir wollen doch keinen bausatz kaufen, sondern alles selbst 
entwickeln oder??
ich meinte mit gedanken machen...
wie willst du alles verkabeln, welche µC benutzen wir, wie groß soll die 
matrix sein, was für funktionen sollen rein, was soll das ding überhaupt 
anzeigen?? usw...
ich würde die sache mit multiplexing weglassen und alles mit mehreren µC 
aufbauen, ist mal was neues :-) und es hat nicht jeder...
mach dir mal ne skizze und dann schaun wir mal weiter würd ich sagen...
 :-)

von Karl H. (kbuchegg)


Lesenswert?

G. G. schrieb:

> ich würde die sache mit multiplexing weglassen und alles mit mehreren µC
> aufbauen,

keine gute Idee.
Die Dinge werden selten einfacher, wenn mehrere Prozessoren im Spiel 
sind. Ganz im Gegenteil, ganz im Gegenteil.

von Thomas Kiss (Gast)


Lesenswert?

G.G Du hast mich getroffen !!!!! -D

Ich sage es Dir ganz ehrlich, ich bin noch soooooooooweit davon 
entfernt, gebe ehrlich zu, daß ich keinen CUBE aus eigener Kraft bauen 
könnte, geschweige von der Ansteuerung....

Klar es jukct mich schon sehr um zu wissen wie so ein CUBE funzt....

Ich möchte gerne Step by Step machen, also erstmal die Grundlagen vom 
PWM erforschen mit einem LED...

und vorallem es ist auch noch eine Zeitfrage bei mir, habe leider nicht 
jeden Tag 5 Stunden Zeit...

von Giuseppe G. (Firma: ACS) (gcrax)


Lesenswert?

na siehste :-)
ich sags doch, erst step by step alles langsam aufbauen und stein für 
stein dein häusle bauen :-)

ich hab noch niemanden getroffen, der sein haus vom dach an aufbaut :-D
aber mal im ernst, wenn man die konkrete idee hat, weiss was und wie 
sein ziel aussieht und auch kraft und hirn in die sache steckt, kann man 
mit allen möglichen dingen alles aufbauen, ganz egal ob 1,2...5 oder 
mehr µC oder sonstwas zusammenschaltet :-)
und die sache das mehrere µC nicht gehn, oder sonstwas...hmmm...
ich hab hier ein projekt das über 60µC miteinander verbindet und das in 
einer einzigen schaltung, die ich selbst aufgebaut habe...
jeder µC hat seine aufgabe zu erfüllen und muss nur seine werte für die 
anderen freigeben :-)
machbar is alles mein lieber, aber wie gesagt, mach erst mal dein 
fundament, wenn du willst das dein haus auch wirklich steht :-)

von Thomas Kiss (Gast)


Lesenswert?

Mein "Kumpel" ist G.G......

Mal ne frage Frage Firma ELS ??

von roboter (Gast)


Lesenswert?

....Ich möchte gerne Step by Step machen, also erstmal die Grundlagen 
vom
PWM erforschen mit einem LED...

Das ist es, die Grundlagen kannst du nur erlernen mit Winavr-c usw am 
Gerät.
Nämlich dort lernst du jedes Register kennen und es wird nur 
durchgeführt was du hineinschaufelst.
Dadurch kommst du dann nicht drumrum dich mit der Lektüre zu befassen.

Bei Bascom holt man seine Qbasic-Kenntnisse raus und "versucht" und 
"hofft" das es funktioniert.
Gerade bei den Timern weisst du manchmal in Bascom nicht , warum die 
sich in die Quere kommen usw.

von Thomas Kiss (Gast)


Lesenswert?

Hmmm...

"Das ist es, die Grundlagen kannst du nur erlernen mit Winavr-c usw am
Gerät.
Nämlich dort lernst du jedes Register kennen und es wird nur
durchgeführt was du hineinschaufelst.
Dadurch kommst du dann nicht drumrum dich mit der Lektüre zu befassen."

Ich dachte, daß man mit BASCOm auch PWM machen kann, oder muss man 
wirklich bis zum Atomkern des AVR wissen...Oder es reicht nicht zur 
Hobbyanwendungen ???

LED Cube...LoL

von Karl H. (kbuchegg)


Lesenswert?

Thomas Kiss schrieb:

> Ich dachte, daß man mit BASCOm auch PWM machen kann, oder muss man
> wirklich bis zum Atomkern des AVR wissen...Oder es reicht nicht zur
> Hobbyanwendungen ???

Das sagt so keiner.

Was roboter meint, ganz konkret anhand deines Projekts:

Du hast in deinem Projekt eine LCD angesteuert. Gut.
Erzähl mal, wie funktioniert das? Wie gestaltet sich die 
Datenübertragung zum LCD, was ist dabei kritisch, worauf musst du 
achten? Wenn auf deinem LCD kein Standard-Controller verbaut ist, 
sondern einer der ähnlich aber doch anders funktioniert, könntest du 
dann dieses LCD immer noch ansteuern?

Siehst du, das ist das BASCOM Dilemma
Auf der einen Seite ist es super, wenn man fertige Bausteine zur 
Verwendung zur Verfügung hat. Dagegen ist erst mal nichts zu sagen.
Nur "wissen wies geht" tust du deswegen noch lange nicht.

Das ganze ist ein bischen wie Taschenrechner.
Wir benutzen sie wie selbstverständlich. Nur wer von uns kann denn noch 
mit der Hand und Papier und Bleistift eine Wurzel ziehen?
(Und nein, das Papier und Belistift Verfahren ist nicht dasselbe welches 
ein Rechner benutzt. Rechner machen meistens eine Newton Iteration. 
Papier und Bleistift geht anders)

Das soll jetzt keine Wertung gegen oder für BASCOM sein.
(Was mich persönlich an BASCOM nervt, ist der bescheidene 
Expression-Parser)

von Thomas Kiss (Gast)


Lesenswert?

Hmm..Karl Heinz....

Tja die grosse Frage..wie weit muss man heruntergehen ? ich denke man 
sollte gute kompromisse finden...Bsp LCD hast recht, keine Ahnung, aber 
das sind Sachen, die ich wissen muss ? wenn ich eine Uhr bauen möchte ?

Mindestens für den Anfang ? War ich echt froh, daß nach 3 Tagen eine UHR 
hatte, von Null an !!

von Karl H. (kbuchegg)


Lesenswert?

Thomas Kiss schrieb:
> Hmm..Karl Heinz....
>
> Tja die grosse Frage..wie weit muss man heruntergehen ? ich denke man
> sollte gute kompromisse finden...Bsp LCD hast recht, keine Ahnung, aber
> das sind Sachen, die ich wissen muss ? wenn ich eine Uhr bauen möchte ?
>
> Mindestens für den Anfang ? War ich echt froh, daß nach 3 Tagen eine UHR
> hatte, von Null an !!

Nicht falsch verstehen.
Super Arbeit.
Aber du baust natürlich darauf auf, dass andere gewisse Komponenten 
schon für dich vorgearbeitet haben.
Warum hast du eigentlich nicht die in BASCOM eingebaute Uhr benutzt? Bin 
zwar kein BASCOM Spezi, aber soviel ich weiß, kann man die auch ohne 
32kHz Quarz am Timer benutzen.


> aber
> das sind Sachen, die ich wissen muss ? wenn ich eine Uhr bauen möchte ?

Solange du mit der LCD so wie jetzt zufrieden bist, ist ja alles ok.
Jetzt hab ich da aber so ein graphisches LCD. Deine Uhr würde mir 
grundsätzlich gefallen, aber ich hätte das gerne als Analoguhr, so 
richtig mit Zifferblatt und Zeiger.

Oooops. Jetzt stehst du schön da :-)

Nichts für ungut. Ich will auch keine Wertung gegenüber BASCOM abgeben. 
Es ist ok so wie du das machst. Solange du nicht auf die Grundlagen 
vergisst. Vielleicht streust du in ein paar Wochen mal ein paar 
Assemblerübungen ein, weil du es ganz genau wissen willst, was du unter 
der Bettdecke tatsächlich alles passiert.

von Thomas Kiss (Gast)


Lesenswert?

"was du unter der Bettdecke tatsächlich alles passiert."

muss sofort die komplette Enzyklopedie reinziehen !!!

"Warum hast du eigentlich nicht die in BASCOM eingebaute Uhr benutzt?"

Ja Bascom hat eine Softclock funktion, habe kurz im Befehlsübersicht 
gesehen, daß man Datum und Uhrzeit gleich als Ergebnis bekommt...wie LCD 
Ausgabe..LoL.....

Ich wollte wirklich die komplette Funktion einer Uhr nachbilden..

Also Incr Sek..if 60 then..usw...

von Dr. Seltsam (Gast)


Lesenswert?

Hallo!

Es ist sicherlich hilfreich, im Detail zu wissen, wie der 44780 
angeschlossen und -gesteuert wird. Allerdings glaube ich nicht, das es 
für einen Einsteiger erforderlich ist, im Detail zu wissen, wie die 
"BasCom-PRINT"-Routine oder die "C-printf"-Routine funktioniert, welche 
Portbits wann/wie/wo bedient werden usw.

Der eine oder andere fährt ja schließlich auch mit dem Automobil, obwohl 
er nicht in der Lage ist, die thermodynamischen Vorgänge im Brennraum 
hinreichend zu erläutern - Oder verlässt sich zum Starten desselben auf 
die Hilfe des Anlassers, obwohl er die Kurbelwelle doch selbst per 
Kurbel und Muskelkraft bis zur Selbsterhaltungsdrehzahl bringen könnte, 
um dann den Zündzeitpunkt manuell je nach Lastzustand zu verstellen...

Viel wichtiger ist m.E., das hier jemand ein brauchbares (und 
offensichtlich Freude bereitendes) Werkzeug für den Zugang zur 
Elektronik und Informatik gefunden hat!

Weiter so und nicht auf das wenig hilfreiche Geschwätz hören!

von Giuseppe G. (Firma: ACS) (gcrax)


Lesenswert?

@Karl heinz
Mannometer hey, fängt das alles hier schon wieder an in die falsche 
richtung zu laufen???

Sorry aber mal ne frage, als du kind warst, hast du da etwa auch SOFORT 
wie Einstein oder  Mozart ALLES gekonnt??? oder bist du da auch 
manschmal stur gewesen und hast jeden scheissdreck mitgemacht, der 
eigentlich falsch ist???

er macht soweit alles richtig bis jetzt, lass IHN entscheiden, was ER 
will...
Klar hast du recht mit deinem Dysplay und sonstwas, aber ganz ehrlich...
Er hats geschafft in 3 tagen was FUNKTIONSFÄHIGES zu erschaffen ja?? mit 
seinem eigenem hirn, mit SEINEM Stolz und und und...
Was geht dich das eigentlich an, was ER will...
Nicht falsch verstehen, is nix gegen dich, aber er hat im moment diese 
lust und laune und deshalb macht er es so und nicht anders...

Tut mir alle bitte den gefallen und HELFT ihm mit das was ER hat und 
quasselt ihm nix neues ein, denn was unter der bettdecke eines AVRs 
passiert, das wird IHM wahrscheinlich NIEMALS interessieren und wenn 
schon, er weiss wie das internet funktioniert und wie du siehst, er ist 
auch selbst in der Lage das eigenständig zu suchen und zu erlernen...

Wenn du an deiner analogen Uhr gefallen findest, bitte...
mach sie dir doch selber, so wie er es macht und dann diskutieren wir 
zwei nochmal was DU dann alles richtig und was DU dann alles falsch 
gemacht hast...

von U.R. Schmitt (Gast)


Lesenswert?

Dr. Seltsam schrieb:
> Weiter so und nicht auf das wenig hilfreiche Geschwätz hören!

Wo war denn jetzt eben Geschwätz?

von Dr. Seltsam (Gast)


Lesenswert?

@U.R. Schmitt (Gast):

> Dr. Seltsam schrieb:
> > Weiter so und nicht auf das wenig hilfreiche Geschwätz hören!
> Wo war denn jetzt eben Geschwätz?

Das sollte nicht persönlich gegen Dich gehen, sondern ganz allgemein 
gegen die unzähligen "Besserwisser" und "Gutmenschen", die nicht eher 
ruhen, eher jede andere Lebensform im bekannten Universum von deren 
Meinung überzeugt ist...

von Karl H. (kbuchegg)


Lesenswert?

G. G. schrieb:
> @Karl heinz
> Mannometer hey, fängt das alles hier schon wieder an in die falsche
> richtung zu laufen???

Nur, wenn du es als solches misverstehen willst.
Ich hab nichts gegen BASCOM.
Lies einfach noch mal, was ich geschrieben habe. Versuch es ein wenig zu 
meinen Gunsten zu lesen und du wirst erkennen, dass ich keineswegs eine 
missfallende Haltung einnehme. Ganz im Gegenteil.

von Giuseppe G. (Firma: ACS) (gcrax)


Lesenswert?

@Karl heinz Buchegger
>Nur, wenn du es als solches misverstehen willst.
>Ich hab nichts gegen BASCOM.
>Lies einfach noch mal, was ich geschrieben habe. Versuch es ein wenig zu
>meinen Gunsten zu lesen und du wirst erkennen, dass ich keineswegs eine
>missfallende Haltung einnehme. Ganz im Gegenteil.


ganz ehrlich?? es geht ja in diesem abschnitt des lebens grade mal NICHT 
zu DIENEM Gunsten, sondern um das Projekt das ER will...
Merkst du eigentlich nicht, das solche Kommentare (auch wenn sie 
inhaltlich korrekt sind)eigentlich garnicht erwünscht sind??

Nochmals, es geht hier und jetzt um SEIN Projekt, das er mit eigenen 
Hände erschaffen hat...nicht um DEINE Sprache oder dein Wollen...

Gib ihm entweder HILFESTELLUNG oder halt dich einfach mal GANZ raus...
Würd dir ja auch aufn Sack gehn, wenn dir jeder sagt was DU anzuziehen 
hast oder???
Vin dir kam bis jetzt NULL, außer Gemäcker...

von U.R. Schmitt (Gast)


Lesenswert?

G. G. schrieb:
> Mannometer hey, fängt das alles hier schon wieder an in die falsche
> richtung zu laufen???

Sag mal, wo ist Dein Problem?
Karl Heinz hat den TE in allerfeundlichstem Ton den Tipp gegeben, daß 
die Welt mit BASCOM nicht zuende ist.
Sobald hier jemand auch nur einen kleines Augenzwinkern bzgl BASCOM 
fallen lässt läufst Du in die falsche Richtung, und zwar AMOK!

Zitat von vorher:

G. G. schrieb:
> Also jungs, sind wir hier aufn wurstmarkt wo man sich um die heisseste
> wurst bekriegen muss???
> Lass doch den armen kerl endlich sein zeug programmieren wie ER es will
> und nicht wie DU es bestimmen MUSST...
> ich sag doch immerwieder diese scheiss gesetzgebung von allen, jeder
> will es besser wissen...
>
> Wie ihr sehn könnt, gibt es DOCH noch leute, die sich WAHNSINNIG GERN
> mit dem BASCOM-SCH***-Dreck beschäftigen....
> Ihr seit unmöglich ey...

Der einzige der hier sofort unfreundlich wird und sich bekriegen will 
bist ja wohl DU ALLEINE!

von Karl H. (kbuchegg)


Lesenswert?

G. G. schrieb:

> Vin dir kam bis jetzt NULL, außer Gemäcker...


Wenn du das so siehst.
Ich seh zwar nicht wo ich da rumgemäckert hätte. Als ich einstieg stand 
eine Aussage von 'roboter' im Raum, die ich ein wenig abschwächen 
wollte, weil man sie tatsächlich als Gemäcker misverstehen könnte, und 
ich der Überzeugung war, dass 'roboter' genau das nicht ausdrücken 
wollte, Thomas aber auf dem besten Wege war genau das zu tun.


Wie man zb
> Nicht falsch verstehen.
> Super Arbeit.
misverstehen kann, ist mir ehrlich gesagt ein Rätsel.
Oder
> Es ist ok so wie du das machst. Solange du nicht auf
> die Grundlagen vergisst.


Und ab da an ist mir alles Mögliche unterstellt worden.

Aber wir können gerne einen Deal machen.
Ich halte mich in Zukunft aus BASCOM Threads raus, die betreust du.
Und du hältst dich aus C-Threads raus.

von Giuseppe G. (Firma: ACS) (gcrax)


Lesenswert?

>Aber wir können gerne einen Deal machen.
>Ich halte mich in Zukunft aus BASCOM Threads raus, die betreust du.
>Und du hältst dich aus C-Threads raus.

tut mir leid, wenn DU dich angegriffen fühlst...
Das "DU" von mir bezog sich eigentlich auf die Mehrheit, die hier den 
armen jungen versucht alles andere als bascom aufzuschwätzen...
Ich will hier keinen nieder machen oder sonst irgendwie persönlich 
angreifen...

Ich seh es mal so...
wir sind hier in einem Forum wo es um Hilfe geht... Ich frag dich, du 
fragst mich, ich helf dir und du hilst mir...
wenn du irgendwo in einer bank bist und geld abheben willst, versucht 
man dir ja auch keine würstchen zu verkaufen, sondern man gibt dir 
entweder sofort das geld oder man sagt dir wenigstens warum man es dir 
nicht sofort gibt...
Ich will damit sagen...
Er hat ein schönes projekt aufgebaut, eigenständig, sinnvoll, 
funktionsfähig und und und... dieser meinung sind wir alle glaube ich...
es geht hier einzig und allein darum IHM bei seinem Vorhaben zu helfen 
oder meinungen auszutauschen und nicht um andere würstchen...
deshalb wird man manschmal falsch verstanden...

Ich möchte hier nirgendswo in den threads als betreuer fungieren, 
sondern einfach nur da wo ich kann meine hilfe anbieten...
ich selbst halt mich IMMER aus deiner Wahl, deinem Vorhaben oder DEINER 
Idee, ganz egal mit was oder wie du es macht, es ist DEINS...
Und das scheinen manche menschen nicht sofort zu kapieren...

Also im Guten sinne, wie wärs denn endlich mal wieder mit einem 
"Vorschlag"??? :-)

von Thomas Kiss (Gast)


Lesenswert?

Uh...jetzt ist bald Krieg hier....-D

nun was andres Frage an G.G....( Nix Assembler und Molekularebene )

Verständnis Checken..

In meinem Projekt ist der Timer1 belegt. also ich muss für die PWM 
"Test" Timer2 nehmen... Mit Timer2 kann ich PWM mit 8 Bit auflösung 
erzeugen...

Also bei 16Mhz nehme ich 1024 Prescaler also kommt erstmal 15625 Hz an 
den Timer2 an.

Nach dem Formel (Quarz/Prescaler)/Timerauflösung*2 bekomme 976 Hz als 
PWN Signal....nun mit dem Compare ( ist glaube ist ein register, habe 
mal gelesen ) definiere dann das Tastverhältnis, also wo der Timer2 
diese Compare trifft wird der PWM Ausgang geschaltet..hoffe habe richtig 
verstanden...

Also wenn man den Wert Compare verändert dimmt man die LED...

Nun aber zum "blinken" braucht man einige Hz ...

PS: es wäre wirklich gut, wenn jemand zu einem Problem frage hat, egal 
was daß man Tipps geben kann wie er es lösen kann und nicht wie mit was 
komplett anderen Sachen...Ich habe ein Problem mit Atmega..Antowrt, 
nehme PIC dann geht es..suppa...

von Giuseppe G. (Firma: ACS) (gcrax)


Lesenswert?

>Nach dem Formel (Quarz/Prescaler)/Timerauflösung*2 bekomme 976 Hz als
>PWN Signal....nun mit dem Compare ( ist glaube ist ein register, habe
Ansatzweise hast du das auch wie ich seh verstanden, nur das ganze soll 
jetzt noch in eine tolle schleife gepackt werden und dann läuft es auch 
ganz alleine hoch und runter das dimmen...
das was du verstanden hast ist ein fester helligkeitswert den du da 
erzeugstm, aber les dich mal weiter ein, du bist auf dem besten wege es 
fast vollständig kapiert zu haben :-)

von Thomas Kiss (Gast)


Lesenswert?

Meine "Trockengedanke" war ( ich probiere immer gleich auf dem 
Steckbrett aus, was genau passiert )

Ich muss mal sehen ob ich für den Compare eine Variable definieren kann 
z.B
I.

dann könnte ich mir vorstellen dass ich eine schleife mache

For I = 1 to 255 ( ist 8 Bit bei Timer2 )Step 1

..

Next I

( Theorie - Pulsweite = Helligkeit )

mal gucken...

von Giuseppe G. (Firma: ACS) (gcrax)


Lesenswert?

darf ich dir vielleicht an diesem punkt das Multifunktionsboard von 
myAVR ans herz legen? is denk ich mal praktischer, als alles aufn 
steckbrett zu brutzeln...
du hast den ansatz und die umsetzung kapiert mein lieber :-D
viel erfolg, lass uns wissen...

von Karl H. (kbuchegg)


Lesenswert?

Thomas Kiss schrieb:

> Also bei 16Mhz nehme ich 1024 Prescaler also kommt erstmal 15625 Hz an
> den Timer2 an.

Yep

> Nach dem Formel (Quarz/Prescaler)/Timerauflösung*2 bekomme 976 Hz als
> PWN Signal....

Wie hast du das gerechnet?
1
16000000 / 1024 / 256 = 61Hz und ein paar Zerquetschte

256 weil der Timer2 ein 8 Bit Timer ist.

Das *2 greift hier nicht, weil du mit jedem Timerdurchlauf eine 
komplette "Welle im Sinne einer Frequenz" erzeugst.

> Du bekommst
> nun mit dem Compare ( ist glaube ist ein register, habe
> mal gelesen )

richtig

> definiere dann das Tastverhältnis,

auch richtig

> also wo der Timer2
> diese Compare trifft wird der PWM Ausgang geschaltet..hoffe habe richtig
> verstanden...

richtig

Wenn der Timer bei 0 wieder anfängt, geht der Pin auf High
Beim Compare geht er wieder auf Low

(wenn die PWM so konfiguriert ist. Man kann das auch umgekehrt 
konfigurieren. Da gibt es ein paar Möglichkeiten)

> Also wenn man den Wert Compare verändert dimmt man die LED...

genau

> Nun aber zum "blinken" braucht man einige Hz ...

Der Schlüssel besteht darin, dass man den Timer ganz normal weiter 
verwenden kann. Insbesondere erzeugt er natürlich auch weiterhin 
Overflow-Interrupts. Wenn du dich daher in diesen Overflow Interrupt 
klemmst, kannst du dort den Wert der Compare Registers ein klein wenig 
verändern.
Auf die Art 'dimmt' sich der Timer im Interrupt selber hoch, bzw. wenn 
man den Comparewert wieder verkleinert dimmt er sich selber mit jedem 
Overflow Interrupt wieder ein kleines Stückchen runter.

Der Vorteil: Deine LED blinkt ganz von alleine, indem sie auf und wieder 
runter dimmt.
Das Problem bei deiner Lösung:
Solange der µC in der for Schleife steckt, macht er nichts anderes. Zb 
bearbeitet er auch nicht die LCD Anzeige. Daher ist diese Lösung eher 
schlecht. Sie ist gut genug um mal PWM auszuprobieren, aber für deine 
Uhr taugt sie nichts.

von Thomas Kiss (Gast)


Lesenswert?

danke..G.G

ich habe das Board vom Pollin mit LCD Add-on....Pollin Board habe mit 
Nullkraft Sockel bestückt...geht relativ gut, einfache Sachen wie jetzt 
mit PWM kann ich direkt auf dem Pollin Board machen, habe dort LEDs und 
Tasten....

Pollin Board muss ich aber umbauen weil die Tasten auf High 
schalten..bissle Kacke....Also wenn ich was dort probiert habe, muss ich 
den Code wieder umfrikeln, wenn es um eine fertige Schaltung geht...
Taster Standard auf GND...

von Thomas Kiss (Gast)


Lesenswert?

Karl Heinz..danke...

Shit hast recht, verrechnet...

"Der Schlüssel besteht darin, dass man den Timer ganz normal weiter
verwenden kann. Insbesondere erzeugt er natürlich auch weiterhin
Overflow-Interrupts. Wenn du dich daher in diesen Overflow Interrupt
klemmst, kannst du dort den Wert der Compare Registers ein klein wenig
verändern.

mit einfachen Wörter ????? nicht ganz verstanden...


Auf die Art 'dimmt' sich der Timer im Interrupt selber hoch, bzw. wenn
man den Comparewert wieder verkleinert dimmt er sich selber mit jedem
Overflow Interrupt wieder ein kleines Stückchen runter."

von Giuseppe G. (Firma: ACS) (gcrax)


Lesenswert?

>Also wenn ich was dort probiert habe, muss ich
>den Code wieder umfrikeln, wenn es um eine fertige Schaltung geht...
>Taster Standard auf GND...
Genau deshalb gibt es ja diese EvaBoards auch, damit du deine Schaltung 
so gerecht wie möglich erstellen kannst und sie nicht unbedingt an das 
board anpassen musst, oder jedesmal den code zu ändern...
bei dem vorgeschlagenem Board is jeder Pin des AVRs auf stecksockeln 
rausgeführt und du kommst so ganz simple an jede funktion ran, ohne 
lästiges umstecken oder so...
Oder du arbeitest direkt ein ISP auf deine Platine ein :-)

weiter so...

von Karl H. (kbuchegg)


Lesenswert?

Thomas Kiss schrieb:
> Karl Heinz..danke...
>
> Shit hast recht, verrechnet...
>
> "Der Schlüssel besteht darin, dass man den Timer ganz normal weiter
> verwenden kann. Insbesondere erzeugt er natürlich auch weiterhin
> Overflow-Interrupts. Wenn du dich daher in diesen Overflow Interrupt
> klemmst, kannst du dort den Wert der Compare Registers ein klein wenig
> verändern.
>
> mit einfachen Wörter ????? nicht ganz verstanden...

Du kannst eine Interrupt Routine schreiben, die an den Overflow des 
Timers gebunden ist.

Wir wissen mitlerweile, dass die rund 61 mal in der Sekunde aufgerufen 
wird.

Weiters weißt du, dass die Helligkeit der LED direkt davon abhängt, 
welchen Wert du ins Compare Register schreibst.


Gut.

Wenn du eine Variable hast, die sagen wir mal 0 ist.
In der Overflow Interrupt Routine zählst du 1 dazu.

Da wir wissen, dass die Interrupt Routine 61 mal in der Sekunde 
aufgerufen wird, nimmt diese Variable daher im Laufe der nächsten 
Sekunde sukzessive alle Werte von 0 bis 60 an.
Wenn du daher diesen Wert gleichzeitig auch noch in das Compare Register 
schreibst, dann verändert sich dein Compare Wert (der ja die Helligkeit 
der LED bestimmt) im Laufe einer Sekunde von 0 bis auf 60. Und damit 
auch die Helligkeit deiner LED.

Machst du dir noch eine 2te Variable, dann kannst du zb vereinbaren, 
dass ein Wert von 0 in dieser Variablen bedeutet, dass hochgedimmt 
werden soll. Ein Wert von 1 würde aussagen, das runtergedimmt werden 
soll.
Ist diese Variable daher auf 0, dann zählst du bei jedem Interrupt 
Aufruf 1 zu deiner Dimm-Variablen dazu, ist die Richtungs-Variable auf 1 
dann ziehst du immer 1 ab.
Und natürlich gehören dann immer noch die entsprechenden Abfragen auf 
die jeweiligen Dimm Endpunkte mit dazu, an denen die Richtung umgedreht 
wird.

In Pseudocode

1
Variable  Richtung
2
Variable  DimmWert
3
4
Interrupt-Routine bei Timer Overflow:
5
6
   if  Richtung = 0 then       ' aufdimmen
7
     DimmWert = DimmWert + 1
8
     if DimmWert = 61 then     ' Ende erreicht?
9
       Richtung = 1            ' dann richtung umdrehen
10
     end if
11
12
   else                        ' abdimmen
13
     DimmWert = DimmWert - 1
14
     if DimmWert = 0 then      ' Ende erreicht
15
       Richtung = 0
16
     end if
17
   end if
18
19
   Compare Register mit dem DimmWert laden
20
21
Ende Interrupt

Hinweis: Da wir wissen, dass diese Funktion 61 mal in der Sekunde 
aufgerufen wird, wissen wir auch das einmal aufdimmen ziemlich genau 1 
Sekunde dauern wird. Denn DimmWert muss ja 61 mal erhöht werden, bis die 
61 bei der if Abfrage erreicht werden.
Aus genau dem gleichen Grund dauert auch das Abdimmen ziemlich genau 1 
Sekunde

Aber: Niemand sagt, dass man immer nur um 1 erhöhen bzw. erniedrigen 
darf. Und niemand sagt, dass man von 0 bis 60 gehen muss. :-)
Und dann kann man ja auch noch einen kleineren Vorteiler nehmen. Da gibt 
es ein paar Schrauben an denen man drehen kann und auch darf.

von Thomas Kiss (Gast)


Lesenswert?

ISP Wannensteker, könnte ich einbauen, später wenn die Schaltung OK 
ist..nun welchen MyAvr nehmen....hmm...

Brauche für Atmega8 und Atmega32..alle Pins ausgeführt...oder mit 
irgendwelche Steckmöglichkeiten, Variable,,LED, Taster, Buzzer, 7 
Segment..

oder bastele selber einen...naja..eins nach dem anderen..keine Hektik, 
keine 3 Baustellen gleichzeitig...-D

von Thomas Kiss (Gast)


Lesenswert?

Super Danke Karl Heinz, jetzt habe verstanden !!!....

nun jetzt fahre langsam nach Hause, mal sehen ob ich heute noch dazu 
komme etwas zu probieren, möchte erstmal noch den Schaltplan für mein 
Projekt erstmal komplett fertigmachen..und die Platine dazu. und den 
Bascomcode noch verfeinern...

dann probiere separat die PWM aus...( Nichts kaputt machen was schon 
fertig ist...)

von Karl H. (kbuchegg)


Lesenswert?

Thomas Kiss schrieb:
> Super Danke Karl Heinz, jetzt habe verstanden !!!....

gut.
Das ist nämlich ein wichtiges Grundprinzip in der µC-Programmiererei.

Der Schlüssel zu jeglicher Parallelaktion (wenn also der µC scheinbar 
mehrere Dinge gleichzeitig machen muss, wie hier bei dir nebenbei noch 
eine LED auf und ab dimmen), liegt nämlich in den Timern und ihren 
Interrupt Routinen und nicht in for-Schleifen.

In dem Moment, in dem du in so einer Situation sagst: Och da nehm ich 
eine for-Schleife, hast du meistens schon verloren.

Stattdessen brauchst du eine Interrupt Routine, von der du weißt das sie 
regelmässig aufgerufen wird. Dieser regelmässige Aufruf ist sowas wie 
eine 'uhr' oder ein 'Basistakt' in deinem Programm, der von einem 
Zeitpunkt zum nächsten Zeitpunkt reicht. Dein Denken muss dann 
dahingehend gehen, dass du dich frägst: Eine gewisse Zeitspanne ist 
vergangen, was gibt es jetzt zu tun.
Und erst viele Aufrufe hintereinander (die alle regelmässig kommen) 
lösen dann das Problem. Bei jedem Aufruf immer nur ein bischen machen 
(hier um 1 Stufe auf/abdimmen) und in Summe ergibt sich das gewünschte 
komplexere Verhalten.

von Thomas Kiss (Gast)


Lesenswert?

"Der Schlüssel zu jeglicher Parallelaktion (wenn also der µC scheinbar
mehrere Dinge gleichzeitig machen muss, wie hier bei dir nebenbei noch
eine LED auf und ab dimmen), liegt nämlich in den Timern und ihren
Interrupt Routinen und nicht in for-Schleifen."

Ja das habe ich bemerkt, bei der aller aller erste Uhr..wildes flattern 
im Display....dachte Atmega 16Mhz, genügend Power vor eine einfache Uhr, 
aber wenn der Code schlecht ist, dann macht das Ding auch 
nicht...Smile...

Noch SUUUUUUUUUUUUUUUUPPPPPPPPPPPPPPEEEEEEEEEERRRRRRRRRRRR Danke an alle
die hier nette und vernünftige Tipps und Beispiele gemacht haben !!!

Klasse !!!

von Thomas Kiss (Gast)


Lesenswert?

Hmm..erste Probleme mit PWM....

Folgendes gedacht ( falsch gedacht )

Dim A As Byte

Config Pinb.2 = Output  'led an pin 16 über R nach GND


Config Timer2 = Pwm , Prescale = 1024 , Compare Pwm = Clear Up , Pwm = 
On

'Die Timer starten
Enable Timer2
Start Timer2



Do
Compare1b = A

A = A + 1


Waitms 10

Loop

End

LED müsste bisschen leuchten, bleibt aber dunkel

von Karl H. (kbuchegg)


Lesenswert?

Thomas Kiss schrieb:

> Config Timer2 = Pwm , Prescale = 1024 , Compare Pwm = Clear Up , Pwm =
> On

Timer 2

> Do
> Compare1b = A

Compare 1 b

Hust. Timer 2!

von Thomas Kiss (Gast)


Lesenswert?

Jetzt funzt aber....

Config Portb.2 = Output
Config Timer2 = Pwm , Prescale = 1 , Compare Pwm = Clear Up , Pwm = On

Enable Timer2
Start Timer2

Dim A As Byte

Do
Ocr2 = A

A = A + 1

Waitms 10

Loop

End

Nach lange Sucherei habe ich herausgefunden dass man bei Timer2 ocr2 
benutzen muss, aber weiss nicht warum ?????
------------------------------------------------
Bei Timer1 geht es so :

Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear 
Down , Compare B Pwm = Clear Down

Enable Timer1
Start Timer1

do
Compare1a = A
loop

von Karl H. (kbuchegg)


Lesenswert?

Thomas Kiss schrieb:

> Nach lange Sucherei habe ich herausgefunden dass man bei Timer2 ocr2
> benutzen muss, aber weiss nicht warum ?????

Ich denke du bist jetzt soweit, dass du ohne Datenblatt zu deinem 
Prozessor nicht mehr weiterkommst.
Im Datenblatt steht drinnen, wie die zu einem Timer zugehörigen Register 
heissen und was sie bewirken.

von Thomas Kiss (Gast)


Lesenswert?

Werde morgen mal nach ein verständliches Datenblatt suchen..

weiterhin ist interesant, daß ich am Ausgang LED 30,5 Hz messe..6

Messgereät ( 
http://www.avr-asm-tutorial.net/avr_de/fcount/fcount_m8.html)
Nachgebaut - D

Config Timer2 = Pwm , Prescale = 1024 , Compare Pwm = Clear Down , Pwm = 
On

16000000/1024 = 15625 / 255 müsste nach Karl Heinz 61 HZ rauskommen,

ich dachte 15625/ (255x2) = 30.6 Hz

verständnisproblem....

von MWS (Gast)


Lesenswert?

> Nach lange Sucherei habe ich herausgefunden dass man bei Timer2 ocr2
> benutzen muss, aber weiss nicht warum ?????

Man muss nicht. Man könnte auch Compare2 verwenden. Liegt daran, daß 
Timer2 nur eine Compare Unit besitzt, und es damit kein ..a oder ..b 
gibt.

Außerdem, so wie ich das sehe, möchtest Du nur eine PWM nutzen, nicht 
aber die passende Interruptserviceroutine (ISR) zum Timer2, also lass 
das Enable Timer2 raus, denn das erlaubt genau diese ISR.

Mit C würdest Du jetzt schon im Nirvana landen, da Du bei undefinierter 
ISR eine Sprung auf den Resetvektor bekommst.

Bascom schreibt in die Interruptvektortabelle freundlicherweise für Dich 
ein RETI bei nicht deklarierter ISR rein. Allerdings, wenn Du den Takt 
für den Zähler nur schnell genug machst, dann verbrennst Du auf dies Art 
und Weise Deine komplette CPU Leistung. Und ansonsten ist, gar nicht 
verkehrt, was Dir Karl Heinz so geraten hat.

von Klaus (Gast)


Lesenswert?

Thomas Kiss schrieb:
> Werde morgen mal nach ein verständliches Datenblatt suchen..

Es gibt nicht "ein verständliches Datenblatt", es gibt nur DAS 
Datenblatt zum Controller. Und auch das muss man nicht Suchen, das gibts 
vom Hersteller.

von Karl H. (kbuchegg)


Lesenswert?

Thomas Kiss schrieb:

> ich dachte 15625/ (255x2) = 30.6 Hz
>
> verständnisproblem....

Weil du nicht darüber nachgedacht hast, warum da in der Formel eine 
Multiplikation mit 2 steht.

Wenn du in einer ISR einen Ausgang nur umschaltest, brauchst du 2 ISR 
Aufrufe um 1 Welle einer Frequenz zu erzeugen. Beim ersten Aufruf 
schaltest du den Pin von 0 auf 1, beim nächsten Aufruf von 1 auf 0. Und 
damit toggelt der Pin mit der halben Frequenz der ISR Aufrufe. Will man 
daher am Pin eine Frequenz von 100 Hz erreichen, muss die ISR mit einer 
Frequenz von 200 Hz aufgerufen werden.

Aber den Fall hast du nicht. Dich interessiert nicht, welche Frequenz an 
einem hypotetischen Ausgangspin erzeugt wird, wenn man in der ISR einen 
Pin toggeln würde. Dich interessiert die Aufruffrequenz der ISR selber.

Dein Timer zählt mit 16000000 / 1024 = 15625 Hz

jedesmal wenn der Timer seinen Maximalwert (255) erreicht, was alle 256 
Timer-Zählzyklen der Fall ist, gibt es einen Aufruf der ISR.

Daher wird die ISR mit
15625 / 256 = ~61 Hz
aufgerufen.

Nicht einfach nur Formeln planlos abschreiben, sondern auch darüber 
nachdenken wie sie zustande kommen!

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.