PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Atmega88 und rc5 codes



Furtion
27.12.2005, 21:11
Hi ich wollte so ein 36khz Empfänger an meine Atmega88 hängen nun
sagt aber bascom das das nicht gehen würde ( unterstützt das nicht ) gibt
es irgendeine Möglichkeit trotzdem einen Empfänger anzuschließen oder
spinnt nur BAscom?

Ratber
29.12.2005, 18:36
Hi ich wollte so ein 36khz Empfänger an meine Atmega88 hängen nun
sagt aber bascom das das nicht gehen würde ( unterstützt das nicht )

Versteh ich nicht.

Was unterstützt Bascom nicht ?

Furtion
30.12.2005, 11:50
hi ich habe ne atmega 88 und da steht in bascom

Error : 202 Line : 32 .EQU not found, probably using functions that are not supported by the selected chip [TCCR0] , in File : C:\DOKUMENTE UND EINSTELLUNGEN\NEUER ORDNER\IR.BAS

bei diesem Programm

$regfile = "m88def.dat"
$crystal = 16000000
$baud = 9600
$lib "mcsbyte.lbx"

Config Portd.4 = Input
Config Portc.2 = Output
Config Portc.3 = Output
Config Rc5 = Pind.4
Portd.4 = 1
Enable Interrupts
Dim Adress As Integer , Command As Integer

Do
Getrc5(adress , Command)
Waitms 150

If Adress > 255 Then
Portc.2 = 1
Else
Portc.2 = 0
End If

If Command < 255 Then
Portc. 3 = 1
Else
Portc.3 = 0
End If

Loop

End


Schriebe ich aber anstat $regfile = "m88def.dat" ; $regfile = "m8def.dat" hin zeigt er keinen Fehler an.

Marco78
30.12.2005, 12:51
Der Mega88 hat das Register TCCR0 nicht, in der Fehlermeldung steht doch schon, wo das Problem ist!!!

Furtion
30.12.2005, 13:35
wie könte man das den anders machen ?

aber ist das net ein bischen komisch ne Attiny2313 hat das und ne Atmega 88 net.

Marco78
30.12.2005, 14:25
Was glaubt ihr immer, was ihr da macht?
Ein Computerspiel programmieren?
Ein Programm schreiben, das am PC bunte Bilder ausgibt?
Das Programm mal schreiben und in der Schule in Informatik weiterschreiben oder beim Kumpel?
Und dann läuft es noch auf jedem IBM kompatiblen PC?

NEIN!

Da wird ein Mikrocontroller programmiert!!!
Um das machen zu können bedarf es etwas mehr Kenntnissen.
Zum einen die Grundlagen der Elektronik. Der IC braucht ja auch Strom.
Und dann noch fortgeschrittene Grundlagen. Eine LED, die leuchten soll ist ja nicht gleiche eine LED, die leuchten soll. Jede LED hat eine Durchlassspannung, diese Spannung muss erstmal erreicht sein, damit überhaupt was leuchten kann. Und je nach Farbe und Typ ist die Spannugn anders. Mal ebend anklemmen und leuchtet ist nicht!

Genauso ist ein AVR nicht gleich ein anderer AVR. Komisch, der Mega128 hat zwei Hardware-UART, der Tiny2313 aber nicht.

Mal ins Datenblatt schauen, was der IC überhaupt kann.
Aber bevor man ins Datenblatt schaut, muss man erstmal wissen, was der IC überhaupt können muss.
GETRC5() benötigt auch etwas Hardware. Das ist nicht wie beim Computerspiel, Wo Pixel x,y,color einfach eine Punkt auf dem Monitor erzeugt, egal ob es ein 8088 oder P4 ist!
Man muss sich auch mal Gedanken machen, was in der Hardware passiert, wenn man Befehle anwendet. Also erst in die Hilfe schauen, was da zu GETRC5() steht und dann im Datenblatt schauen, ob der gewählte AVR diese Funktionen hat. Und wenn nicht, in der Hilfe schauen, was man sonst noch unternehmen kann. Gibt es erweiterte Funktionen zu den Befehlen? Kann man einen anderen Timer benutzen? Wird der benötigte Timer evtl schon von meinem Programm belegt?
Oder viel schlimmer, ist es nur ein Bug von Bascom?

Ratber
30.12.2005, 14:39
@Furtion


Wenn ich das Compiliere dann bekomme ich keinerlei fehlermeldungen.

Was für ne Bascom Version nutzt du ?

Furtion
30.12.2005, 14:50
hi,

@ Ratber ich habe die Demoversion 1.11.7.9

ich wollte aber eigendlich nur wissen ob es auch eine Andere möglichkeit gibt Ir code zu empfangen.

Ratber
30.12.2005, 15:20
Sicher gibts das aber dafür mußte den Empfang komplett selber schreiben.


Zwischen den Versionen 79 und 80 ist für die 48/88/168 einiges gefixt worden und zur 81er auch.

Zieh dir mal die 81er Demo.

Furtion
30.12.2005, 15:49
wo bekomm ich die Demo her ich hab jetzt nur die 8051 gesehen.

Furtion
30.12.2005, 15:50
erst schauen dann schreiben habs doch gefunden.HeHe

Ratber
30.12.2005, 15:55
Ja,wollt schon sagen das man die kaum übersehen kann :wink:

Furtion
30.12.2005, 16:27
Also ich habe jetzt das Programm:
die 00000 steht für TV1
und die 010000 für Volume +

Kann das gehen viel bei mir es nicht geht

$regfile = "m88def.dat "
$crystal = 16000000
$baud = 9600
$lib "mcsbyte.lbx"

Config Portd.4 = Input
Config Portc.2 = Output
Config Portc.3 = Output
Config Rc5 = Pind.4
Portd.4 = 1
Enable Interrupts
Dim Adress As Integer , Command As Integer

Do
Getrc5(adress , Command)

If Adress = 00000 Then
Portc.2 = 1
Else
Portc.2 = 0
End If

If Command = 010000 Then
Portc. 3 = 1
Else
Portc.3 = 0
End If

Loop

End

Ratber
30.12.2005, 16:38
Kann das gehen viel bei mir es nicht geht


Äh....Rembrand ?


Zum Programm:

Das 010000 sollte wohl Binär sein also solltest du es auch als Binär Deklarieren ("&B010000")

DerWarze
30.12.2005, 19:19
Hallo Marco78

Auch wenn's manchen ärgert ich kann Dich gut verstehen. Ich komm noch aus einer Zeit wo man noch mit Röhreradios bastelte und ne Blinkschaltung mit 2 Transistoren aufbaute. (Auch wenn's manche nicht glauben wolle es gab damals sogar kleine Fahrroboter die ner taschenlampe nachlaufen konnte und Hindernissen auswichen und das ganz ohne Controller nur mit ein Paar Transistoren).
Was will ich damit sagen? Damals, ohne Internet (und im Osten auch ohne breite Fachliteratur) musste man sich eben die Grundlagen erarbeiten wenn man was auf die Beine bringen wollte. Leider gehen diese Tugenden scheintes mir immer mehr verloren, kaum das man einen Stromkreis aufbauen kann geht man gleich um Microcontroller über, so gern man auch nem Einsteiger hilft ein bissel eigenes Nachdenken und Initiative würd ich auch begrüssen.

Ratber
30.12.2005, 20:09
kaum das man einen Stromkreis aufbauen kann geht man gleich um Microcontroller über,

Yo,ein guter Teil der Topics ist darauf zurückzuführen.

Programieren ist eben nicht alles aber es dauert oft ne Weile bis die leute das kapieren :wink:

Marco78
30.12.2005, 20:27
Wenn ich was baue oder programmiere, werde ich auch ungeduldig, wenn es nicht klappt. Ich selbst weiss auch, das ich ab und zu da etwas zu überstürtz rangehe und muss mich selbst dann wieder bremsen.
Dann geht es wieder mit Grundlagen los. Erstmal Spannung messen. Liegt sie an? Wenn ja, dann logisch weiter arbeiten. Wenn nein, warum ist keine Spannung da? Usw...

Auch wenn ich für Radioröhren etwas zu jung bin, kenne ich diese trotzdem relativ gut. In unserer Bücherei waren Fachbücher in dieser Richtung etwas älter ;)

Transistoren kenne ich aus meiner frühen Jugend auch noch. Einige kennen sicherlich die "Kosmos" Baukästen ;)

Vorhin war ich etwas aufgebracht, aber nichts was ich geschrieben habe, tut mir Leid. Ich meinte alles so wie ich es geschrieben habe.

Man kann leicht beobachten, das die waren Experten unter uns alle noch ziemlich jung sind. Viele haben ihre Volljährigkeit noch lange nicht erreicht.
Wer jetzt die Ironie in meinem Satz gefunden hat, dem brauch ich den Satz nicht zu erklären. Wer keine Ironie gefunden hat, dem brauch ich den Satz auch nicht weiter erklären.

Wenn ich kann, dann helfe ich gerne. Egal wie alt der hilfesuchende ist, welches Geschlecht er hat, welcher Religion er angehört oder welche Herkunft er hat.
Aber...
Der Hilfesuchende muss zeigen, das es sich selbst bemüht hat.
Nicht nur hier, eigentlich überall und auch im "richtigen Leben" merkt man es immer öfters, das je jünger der Hilfesuchende ist, umso weniger bemüht er sich um Eigenleistungen.
Und die, die heute jung sind, sind in ein paar Jahren älter und selbstständig unsere Wirtschaft aufrecht erhalten und z.B. mir die Bremsen am Auto wechseln. Wenn die dann aber nicht wissen, was sie da tun, dann bin ich derjenige, der mit defekten Bremsen dann das Kind desjenigen anfährt, der mir die Bremnsklötze gewechselt hat. Oder sich selbst bringe mich in Gefahr.
Wenn man immer alles aufgetischt bekommt, lernt man nicht zu lernen. Und in der heutigen Zeit scheint das immer öfters der Fall zu sein.

Ratber
30.12.2005, 20:39
Wenn ich was baue oder programmiere, werde ich auch ungeduldig, wenn es nicht klappt. Ich selbst weiss auch, das ich ab und zu da etwas zu überstürtz rangehe und muss mich selbst dann wieder bremsen.
Dann geht es wieder mit Grundlagen los. Erstmal Spannung messen. Liegt sie an? Wenn ja, dann logisch weiter arbeiten. Wenn nein, warum ist keine Spannung da? Usw...

Tja,aber was willste dagegen machen ?

Die Leute zwingen erstmal Grundlagen zu büffeln kannste knicken.
Se probieren es doch sich durchzuwurschteln.

Das allgegenwärtige Internet macht es recht einfach.
Irgendeiner macht einem ja doch die Arbeit.
Mam muß nur lange genug quängeln :wink:

Wer vor der allgemeinen Internetära das Basteln angefangen hat war gezwungen sich selber zu bemühen und Informationen waren nicht nur Rar sondern meist auch Kostenpflichtig.


Aber was rede ich da.

Is vorbei und fertig :wink:

Marco78
30.12.2005, 20:56
Irgendeiner macht einem ja doch die Arbeit.
Und genau das ist das Problem.

Mam muß nur lange genug quängeln
Wie meine Tochter. Wenn sie ihren Willen nicht bekommt wird solange jemand anders gefragt, bis sie ihn bekommt. Oder es wird Stundenlang rumgezickt :(
Und am Ende des Tages merkt sie, das es kein schönter Tag war und geht unzufrieden ins Bett und am nächsten Tag ist alles vergessen :)

Das Internet macht die Bastelei einfacher. Ich ärgere mich ja auch nicht, das ich damals diese Möglichkeit nicht hatte. Aber ich kann es nicht ab, wenn jemand erstmal fragt ohne sich zuvor Gedanken gemacht zu habe.
Am besten zu Papa gehen, ein Atmel Starterkit mit allem was es gibt kaufen lassen und dann gleich anfangen. C können die meisten ja schon aus der Grundschule, also kann man gleich anfangen einen Roboter zu bauen :D

Ich zwinge auch niemanden erstmal das nötigste zu lernen. Wer mehrere Schaltungen verbindet, aber absolut nicht glauben will, das die Massen der Spannungsquellen auch verbunden werden müssen, wird halt damit gestraft, das es nicht funktioniert :D
Komisch, es geht nicht, obwohl jede Schaltung für sich fehlerfrei arbeitet. Das muss doch auch so geh'n.

Wer Fragen stellt und die Tipps nicht mal wenigstens ausprobiert, bekommt von mir auch kein Mitleid.

Aber wer fragt weil er etwas nicht versteht, bekommt gerne eine Antwort von mir. Vorausgesetzt, ich weiss es selbst.
Und wenn er es dan immer noch nicht versteht versuche ich auch gerne es anders zu erklären.
Ich sehe das ja bei mir. Bis heute gibt es niemanden, der mir das elektrische Feld erklären konnte. Ich selbst habe mir da anhand von Formeln und Versuchen selbst meine "eigene Welt" erschaffen mit der ich arbeiten kann. Aber die versteht auch keiner :D
Jeder Menschist halt anders und bedarf anderer Erklärungen. Aber man muss elbst auch was dafür machen um die weiterführenden Erklärungen anderer überhaupt folgen zu können.

Für einige ist Spannung einfach nur eine Zahl auf dem DMM.
Andere vestehen, das es nur ein Potentialunterschied ist, und die haben es einfacher im Leben (zumindest was die Elektronik angeht).

Sicherlich kann man einiges ohne die nötigen Grundlagen bewirken, aber wer sich beschwert, das ein komplettes Betriebssystem für einen Roboter nicht in einen Tiny11 passt und der auch zu wenige Pins hat, der sollte nochmal etwas kleiner anfangen.

Ratber
30.12.2005, 23:21
Ja,ich muß auch immer etwas schmunzeln wenn bei einigen die tolle Schaltung nicht richtig läuft nur weil der Regler lieber Funktionsgenerator spielt da ein stück Kapazität fehlt :mrgreen: