PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zwei ist mehr als Ein



Edblum
17.09.2008, 08:36
Nachdem ich meine C-control Pro wie empfolen ins Regal gelegt habe, ist es jetzt Zeit fuer ein neues Projekt. Der Pro soll ersetz werden durch 2 Mega88er, bzw Mega8.

Damit gibt es:

2 mal nehr Ports
2 mal mehr Timern

Daneben kann das Programm besser strukturiert werden, zB RC5, PWM, Uhr und andere Zwecke brauchen eine Timer. Kommunikation zwischen die beiden AVR's kan relativ niedrig bleiben, da es nur um Werte von und zu RC5, PWM usw handelt. Ich denke dabei an die SPI.

'Die' oder 'der' bleibt schwierig fuer Hollaender ;)

Wer sagt etwas dazu?

Gruss,

Edblum

user529
17.09.2008, 09:20
'Die' oder 'der' bleibt schwierig fuer Hollaender ;)
Wer sagt etwas dazu?


weder noch, es muss "zwischen DEN beiden AVR's" heißen

denke zwar nicht dass du dir das als antwort erhofft hast, konnt mich aber nicht zurückhalten O:)

was möchtest du du bauen dass du so viele ports und timer/pwm funktionen brauchst?
der ansatz die aufgaben zu verteilen ist gut, allerdings kannst du nicht immer auf anhieb sagen wer gerade mist baut, da viel mehr möglichkeiten dazu gegeben sind (code komunikation timeing der beiden...).

mfg clemens

Edblum
17.09.2008, 09:42
'Die' oder 'der' bleibt schwierig fuer Hollaender ;)
Wer sagt etwas dazu?


weder noch, es muss "zwischen DEN beiden AVR's" heißen

denke zwar nicht dass du dir das als antwort erhofft hast, konnt mich aber nicht zurückhalten O:)

Jaja ;)


was möchtest du du bauen dass du so viele ports und timer/pwm funktionen brauchst?
der ansatz die aufgaben zu verteilen ist gut, allerdings kannst du nicht immer auf anhieb sagen wer gerade mist baut, da viel mehr möglichkeiten dazu gegeben sind (code komunikation timeing der beiden...).

mfg clemens

Ich möchte gerne bis 3 mal BeleuchtungsLED's steuern. Dazu brauche ich 3 mal PWM (Timer) Das ganze möchte ich mit Rc5 fernsteuern (Timer). Ich möchte auch eine (DCF)RTC-Uhr, der zB eine Lichtquelle einschaltet. Weckuhr (Timer).

Für viele Zwecke kann man nur ein bestimmte Timer nützen. Diese ist dan 'besetzt'. Und ich bin sicher dass es Zwecke hinzu kommen ;)

Zwei Mega8 sind billiger als eine Mega128 und einfacher ein zu bauen (kein SMD).

Gruss

Edblum

markusj
17.09.2008, 10:00
@Edblum,

Dir wird vermutlich ein Mega88 oder 168 vollkommen reichen.
Du nimmst einfach einen Timer und machst dann Soft-PWM, für drei LEDs braucht man weder einen M128 noch zwei M8, die langweilen sich nur!

Macht ein Timer. Für RC5 schenke ich dir einen Timer, wenngleich ich nicht weiß, ob man da überhaupt einen braucht.
Für die Weckuhr kannst du den PWM-Timer evtl. recyclen.
Für die RTC hättest du dann den dritten Timer frei.

Je nach dem, was du genau vorhast, wirst du evtl. noch weniger Material brauchen.

mfG
Markus

Edblum
17.09.2008, 16:17
@Edblum,

Dir wird vermutlich ein Mega88 oder 168 vollkommen reichen.
Du nimmst einfach einen Timer und machst dann Soft-PWM, für drei LEDs braucht man weder einen M128 noch zwei M8, die langweilen sich nur!

Macht ein Timer. Für RC5 schenke ich dir einen Timer, wenngleich ich nicht weiß, ob man da überhaupt einen braucht.
Für die Weckuhr kannst du den PWM-Timer evtl. recyclen.
Für die RTC hättest du dann den dritten Timer frei.

Je nach dem, was du genau vorhast, wirst du evtl. noch weniger Material brauchen.

mfG
Markus

Und das alles in Bascom?

Danke für die Antwort.

Gruss

Edblum

markusj
17.09.2008, 17:18
Auch in Bascom ... man muss nur kreativ sein.
Bedenke immer, du programmierst nicht Bascom, du programmierst einen AVR mittels Bascom.
Bascom selbst bietet dir diverse Abkürzungen an (Config-Befehl etc.) an, die Einfachheit kostet dich aber einen Teil des Funktionsumfangs.

Du solltest nicht denken: Ich brauche X-Zeitquellen -> Hardware dafür kaufen, sondern: Ich habe X-Zeitquellen -> Was kann ich alles damit machen?

Es gibt hier irgendwo Sourcecode, bei dem ein einziger ATMega8 (wenn ich mich recht entsinne) bis zu 20! Servos ansteuert (Wenngleich in ASM).
So viele Timer gibts in keinem ATMega der Welt. Die Lösung ist Soft-PWM, für jeden Ausgang gibt es eine Zählervariable, die Interruptroutine zählt diese hoch und toggelt bei Überlauf einen Pin.

Du hast eine Interruptroutine, die dir konfigurierbare Zeitbasis bietet, darin kannst du dann für verschiedene Dinge Variablen hochzählen um so verschiedene individuelle Auslösezeiten zu bekommen.
Wenn die darauf erfolgende Aktion recht kurz ist, kannst du sie direkt abarbeiten, längere Kommandos sollten von der Hauptschleife durchgeführt werden. (ISR setzt Variable, Hauptschleife pollt Variable).

Evtl. funktioniert ein Teil der Bascom-Funktionen nicht ohne Modifikationen mit dieser Programmstruktur, aber wenn man nicht selbst Wege sucht, wird sich dein Atmel immer langweilen.

Ich hätte die Herausforderung in diesem Projekt evtl. sogar darin gesehen, das ganze auf einen Tiny2313 zu quetschen, aber das lass mal besser bleiben ;)

mfG
Markus

Bauteiltöter
17.09.2008, 19:27
Es gibt hier irgendwo Sourcecode, bei dem ein einziger ATMega8 (wenn ich mich recht entsinne) bis zu 20! Servos ansteuert (Wenngleich in ASM).
So viele Timer gibts in keinem ATMega der Welt. Die Lösung ist Soft-PWM, für jeden Ausgang gibt es eine Zählervariable, die Interruptroutine zählt diese hoch und toggelt bei Überlauf einen Pin.


Das geht auch mit BASCOM, und zwar mit dem Befehl
Servo(1-18)=???

Allerdings ist die routine nicht so gut...

MfG

markusj
17.09.2008, 21:39
Is ja langweilig, selbst ist der Mann ;)

Ich mag keine schwarzen Boxen von denen ich nicht verstehe was darin passiert. So n' Soft-PWM hat man schnell und angepasst selbstgeschrieben und ist dann möglicherweise sogar effektiver wie die generischen Bascom-Builtins.

mfG
Markus