Hallo ich wollte gerne einen Quellcode von einem PIC12C508 abändern und auf einem Mega8 laufen lassen.1.Ist das überhaupt möglich?Wenn ja gibt es eventuell die Befehle der verschiedenen MC in einer Liste?Ich meine z.B. PIC Timer TMR0 = Mega TCCR0 usw. weil ich bin noch totaler Anfänger und kann leider nicht den Code selbst schreiben.Ich möchte nähmlich eine Schaltung von mir die einen IR Empfänger besitzt erstmal über den Mega8 ansteuern,da der TSOP nicht funktioniert.Es liegt aber nicht an der vorhandenen Schaltung da diese schon bei jemand anderen läuft.Bauteile sind genau die selben und meine Schaltung läuft bis auf die Ansteuerung des Menüs.Ich hatte jetzt einfach vor den Quellcode einer RC5 Fernbedienung auf einen Mega8 zu brennen daran dann einfach erstmal 5 Schalter klemmen und diesen dann am Eingangpin RC5 der anderen Steuerung anzuklemmen.Das müßte doch eigentlich funktionieren oder nicht? Für eine kleine Starthilfe wäre ich Euch sehr dankbar.Oder gibt es irgendwo einen Code der schon auf einem Mega8 läuft?Ich habe nichts gefunden.
C oder ASM? Eigentlich egal, in jedem Fall: >Ist das überhaupt möglich? ... ich bin noch totaler Anfänger Vergiss es... >Ich habe nichts gefunden. Dann hast du wohl falsch gesucht.
Wieso??? schrieb: > Wenn ja gibt > es eventuell die Befehle der verschiedenen MC in einer Liste?Ich meine > z.B. PIC Timer TMR0 = Mega TCCR0 usw. weil ich bin noch totaler Anfänger nee, so geht das nicht, Programm einfach übertragen geht nicht, da die beiden mc verschiedene Hardware besitzen. Wenn Du ein Programm mit Timern und pipapo übertragen willst, dann musst du beide Architekturen gut kennen. Also versuch lieber eine kennenzulernen und dann dein Programm selber zu schreiben (geht aber nicht mehr bis Weihnachten)
Okay danke ertmal für die Antworten. Der gezeigte link ist doch ein Empfänger ich möchte doch aber senden.
Hallo Wieso??? fraglich wie du zu deinem Namen gekommen bist, aber ich find deinen Wiedererkennungswert damit optimal :-) Zu deinem Thema... Da du totaler neuling bist in sachen Programmieren würde ich dir die simple BASCOM AVR Hochsprache emfehlen... Damit hab ich damals auch einen sehr schnellen einstieg gehabt und eventuell auch einen Atmega 8 µC / ATTiny2313...beide sind ideal beschaltet und damit sehr gut für den einstieg geeignet...Ich selbst hab meine eigene RC5-Emfangs/Sender-Schaltung innerhalb von 4 tagen ganz allein durch lesen und probieren geschafft... Also, hau auf die tasten und viel erflolg... lass wissen, wenn ich dir in sachen bascom helfen kann... lg Giuseppe
Hi AVR415: RC5 IR Remote Control Transmitter on tinyAVR and megaAVR devices http://www.atmel.com/dyn/resources/prod_documents/doc2534.pdf http://www.atmel.com/dyn/resources/prod_documents/AVR415.zip MfG Spess
Ja vielen dank. was bedeutet eigentlich #define RC5_LEFT 86 Ich verstehe definiere Fernbedienung Knopf links 86??? Ist simple Bascom so leicht zu lernen was sind denn da genau die Vorteile? Weil mich regt es auf das ich für jeden sche... Euch fragen muss
In Bascom gibt es fertige Routinen (SendRC5, GetRC5). Damit kann man in kurzer Zeit eine Fernbedienung programmieren. Lade Dir doch die kostenlose Demo-Version von MCSELECTRONIC herunter. Dort gibt es in der Hilfe auch Beispiele zu finden, wie man das in die Tat umsetzt. MfG Paul
@wieso???
probiers doch einfach aus...
die vorteile sind zuerst klar auf der hand...
du musst nicht umbedingt assembler lernen, wie du das grade versuchst
(auch wenns eigentlich von vorteil ist), sondern einfach nur
vordefinierte bausteine eintragen, die auch viel verständlicher und
intuitiver sind...
bei bascom zb heist der rc5 sendecode für taste Standby am fernseher:
>>> Rc5send 0 , 01 , 12
wobei "0" für das togglebit steht (ob taste wiederholt oder einzel
gedrückt ist)...
"01" steht für das gerät (in dem Falle Fernseher 2 (TV2))...
und "12" steht für den RC5 Befehl ausschalten (Standby)
<<<
also, was is verständlicher???
"Rc5send 0 , 01 , 12" oder "#define RC5_LEFT 86"
darin mein lieber, liegt der Unterschied zwischen assembler und
Hochsprache Bascom....
Wenn du fragen hast, melde dich...
LG Giuseppe
Ja ich habe mir jetzt mal bascom heruntergeladen und schaue ich gerade das ich irgendwie das mk2 board ans laufen kriege
wenn es das mk2 board von myavr ist mit usb version, dann wirst du dich totprügeln, aber es wird nicht damit laufen... nimm stattdessen avrdude, damit liefs bei mir auch... benutze bascom nur zum programmieren und zum kompilieren... LG Giuseppe
> also, was is verständlicher??? > "Rc5send 0 , 01 , 12" oder "#define RC5_LEFT 86" noch verständlicher wäre Rc5send toggle_bit_while_sending, TV, standby
Habe mal eine Frage jetzt wollte ich mal was ganz einfaches in Bascom programmieren aber meine LED blinkt nicht (Benutze intern 1mhz) $regfile = "m8def.dat" $hwstack = 40 $swstack = 32 $framesize = 60 $crystal = 1000000 Config Portb.0 = Output 'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C) Do Portb.0 = 1 'Pin wird auf High, also 5V geschaltet Waitms 100 Portb.0 = 0 'Pin wird auf Low, also 0V geschaltet Waitms 100 Loop End
Giuseppe schrieb: > wenn es das mk2 board von myavr ist mit usb version, dann wirst du dich > totprügeln, aber es wird nicht damit laufen... > nimm stattdessen avrdude, damit liefs bei mir auch... > benutze bascom nur zum programmieren und zum kompilieren... > LG Giuseppe also bei mir geht mein myavr MK2 mit BASCOM prima ... der Programmer wird von der aktuellen BASCOM version sogar dierkt unterstützt und in der Programmerliste zur auswahl angeboten... cu BT
Also ich habe den Programmer jetzt auch drinne geht aber nicht kommen tausende Fehlermeldungen did not respont to command:write byte woran kann das liegen??
@Wieso >Config Portb.0 = Output 'Ein Pin >wird als Ausgang konfiguriert PC0 (also Pin0 von Port C) Du konfigurierst zwar den richtigen Port B Pin 0 damit, aber in deinem Kommentar nebendran ist es Port C den du meinst???? Wo hast du die LED angeschlossen??? Sicher auch Port B??? Code scheint soweit ok zu sein, ich würds allerdings so machen... Do toggle PORTB.0 'Pinzustand am PortB Pin0 wird gewechselt... waitms 500 'Pause für 500ms Loop Sag bescheid, wie es aussieht:-) LG Giuseppe
>Also ich habe den Programmer jetzt auch drinne geht aber nicht kommen >tausende Fehlermeldungen did not respont to command:write byte >woran kann das liegen?? Ich sagte doch du wirst dich totschlagen... wenns gehen sollte, ist es wirklich fast schon ein wunder denke ich... bei mir läufts seit jahren nicht... nimm AVRDude und lern lieber effektiven code, statt dich rumzuärgern... Giuseppe
Giuseppe schrieb: > also, was is verständlicher??? > "Rc5send 0 , 01 , 12" oder "#define RC5_LEFT 86" > > darin mein lieber, liegt der Unterschied zwischen assembler und > Hochsprache Bascom.... > Wenn du fragen hast, melde dich... Bist du sicher, dass bei dir nicht auch noch Klärungsbedarf zur Abgrenzung Assembler/Hochsprache besteht? Welcher Assembler kennt denn bitte solche Konstrukte: >Rc5send 0 , 01 , 12 Genausowenig ist #define BASCOM-spezifisch. Diese Direktive kennen einige Assembler und noch mehr Hochsprachen. Noch Fragen?
@Loonix >Bist du sicher, dass bei dir nicht auch noch Klärungsbedarf zur >Abgrenzung Assembler/Hochsprache besteht? Welcher Assembler kennt denn >bitte solche Konstrukte: Ja ich bin mir sicher, weil Bascom kein Assembler ist, es aber auch interpretieren / einfügen kann... Meine genannte direktive funktioniert genauso wie auch geschrieben schon seit jahren in meinen Anwendungen und ich habe auch eine Firma die auf meinen Namen sowas entwickelt, von daher bin ich mir auch sicher... ich sagte auch niemals das " #define" BASCOM-spezifisch ist... Noch fragen??? :-) Lg Giuseppe
Also das Kommetar war nur falsch geschrieben habe jetzt einfach mal mit Bascom gebrannt und siehe da der Code klapt Fehlermeldungen habe ich alle ignoriert geht trotzdem.
Hi >Bist du sicher, dass bei dir nicht auch noch Klärungsbedarf zur >Abgrenzung Assembler/Hochsprache besteht? Welcher Assembler kennt denn >bitte solche Konstrukte: >Rc5send 0 , 01 , 12 'Rc5send 0 , 01 , 12' kann in Assembler ein Makro sein. Ist kein Problem im AVR-Assembler so etwas zu schreiben. MfG Spess
Ja sie blinkt aber jetzt habe ich mal ein LCD angeschlossen und etwas ausgeben wollen jetzt bricht es beim Programmieren ab.Wenn ich aber die Hexfile in Workpad Plus lade und brenne geht das Display.Aber jedesmal wenn ich etwas hinzufüge und neu compiliere und die Hexfile wieder brenne klapt es nicht muss erst die Hex löschen neu compiliren und dann gehts woran kann das liegen
was für einen drucker hast du installiert?? bascom erfordert das mindestens ein drucker installiert ist, damit es auch richtig läuft... vielleicht sind auch deine systemdateien oder einstellungen nicht in ordnung??? oder vielleicht hast du einfach nur einen fehler in deinem quellcode eingebaut... wenn wir kein code oder schaltung von dir haben, können wir auch nur spekulieren...
Ne klapt jetzt hatte wirklich einen Fehler im Code. Aber es stimmt Bascom ist wirklich leicht zu lernen im gegensatz zu C C++. Ich habe jetzt schon ein LCD ans laufen gebraucht das erst was Anzeigt wird nachdem ein Interupt ausgelöst wird.Leider habe ich den INT0 doppelt belegt deswegen geht es nur Teilweise.Kann den Display Anschluss nicht verändern.
doch du kannst das display in bascom so belegen wie du es willst... hauptsache du teilst bascom deine Anschlüsse mit indem du die CONFIG LCD Zeile anpasst... Siehste mal, in 4 tagen schaffst du es locker dein ziel zu erreichen :-) viel spaß und glück ;-) LG Giuseppe
Nein ich meinte das Ich das LCD vertig verdrahtet habe (ist zum stecken deswegen kann ich es nicht ändern.Und der interupt liegt genau auf einen solchen pin von LCD deswegen doppelt. Ich habe jetzt aber mal eine andere Frage.Ich habe mir jetzt den Pin der am Interrupt angeschlossen war von LCD weggebogen und einfach ein Kabel neu verdrahtet.Damit ich den Interupt zum einlesen eines TSOP nehmen kann.Auf dem Display wird mir jetzt die Adresse und das Kommando ausgegeben wenn ich eine Fernbedienung drauf halte (RC5).Das klapt auch wunderbar. Ich habe jetzt aber noch meine andere Schaltung die von jemanden in c programmiert worden ist.Wie schaffe ich jetzt den C code so zu andern das ich die Adressen verändern kann damit diese schaltung endlich reagiert.Leider ist der Code so komplex das ich nur Bahnhof verstehe siehe Anhang
ich würde sagen, schreib sie doch einfach schnell neu... weil portieren ist viel zu schwer für en anfänger... was soll denn die schaltung bewirken?? oder welche funktionen soll die haben, dann kann ich dir vielleicht auch helfen... LG Giuseppe
Es ist eine Terrariumsteuerung Atmega32 SHT11 DCF Module LCD 5 Relais TSOP Also 2 Relais steuern Temparatur und Feuchtigkeit per SHT11 /hysterese Die 3 weiteren Relais können frei eingestellt werden. Das DCF Module ist für eine genaue Zeit LCD gibt die werte aus und zeigt das Menü an Es gibt ein Menü um die Werte einzustellen für die Zeitschaltuhr genauso wie die werte von Temp/feuchte.Leider ist die Universalfernbedienung schei... Man kann aber nur über den TSOP das Menü steuern,deswegen habe ich mir einen RC5 code rausgesucht der bei der Fernbedienung einigermaßen funktioniert und wollte jetzt einfach ins RC5 Protokoll die werte eintragen.
dann entwickle sie doch mit freude selbst... ich mein, wie lcd funzt kennst schon, ebenso auch das RC5 Protokoll... arbeite dich in den temperaturfühler ein und dann schreibst du dir dein eigenes programm das dann alle funktionen nach deinem wunsch hat... du bist nicht weit entfernt vom ziel... Lass mich wissen, wie ich dir helfen kann... LG Giuseppe
Wieso??? schrieb: > was bedeutet eigentlich > > #define RC5_LEFT 86 Dafür musst du nur C/C++ kennen, das hat nix mit µCs zu tun. Die Anweisung ist für den Compiler, er wird hierbei überall im Code den Bezeichner "RC5_LEFT" gegen die Zahl 86 austauschen. Das dient halt der Lesbarkeit des Codes.
Also ich denke es wär einfacher in Bascom eine passende Ferndedienung zu programmieren es gibt ja schon auf der Bascom seite eine RC5 routine.Was ich nicht ganz verstehe ist wie der Schaltplan aussehen muss.
Also würde das dann die Adresse sein die die Fernbedienung sendet (86) ??
So sieht das bei mir aus #define rc5_device 5 #define RC5_0 0 #define RC5_1 1 #define RC5_2 2 #define RC5_3 3 #define RC5_4 4 #define RC5_5 5 #define RC5_6 6 #define RC5_7 7 #define RC5_8 8 #define RC5_9 9 #define RC5_LEFT 86 #define RC5_RIGHT 85 #define RC5_UP 80 #define RC5_DOWN 81 #define RC5_OK 87 #define RC5_MENU 82 #define RC5_POWER 12 #define RC5_CH_UP 32 #define RC5_CH_DOWN 33 #define RC5_RECALL 49 uint16_t get_rc5_code(void); uint8_t new_rc5_data(void); uint8_t rc5_device_ok(uint16_t temp); uint8_t rc5_key_ok(uint16_t temp, uint8_t key); char get_rc5_value(void);
an sich brauchst du nur eine IRLED an Pin OC1A, die Ports konfigurieren und Taster an jeden beliebigen Port... Paar zeilen quelltext und deine fernbedienung ist fertig... was für ein prozessor nutzt du denn?? und wie viele Tasten willst du haben und wieviele codes sollen es denn werden??? mach dir mal nen schaltplan und dann bauste dir das langsam auf... LG Giuseppe
Ich wollte das mit einen Mega8 aufbauen 5 Tasten.Einen schaltplan hab ich schon. Also wenn ich das ganze aber komplett neu in Bascom schreiben möchte. Ist es möglich sagen wir mal eine Datei für den SHT11 zu schreiben.Weil die hätte ich schonmal.Dann eine für den Tsop usw. und diese dann in sagen wir mal eine main datei einzufügen.Das wär für mich einfacher weil ich Teilabschnitte programmieren könnte.
@wieso??? >Ich wollte das mit einen Mega8 aufbauen 5 Tasten.Einen schaltplan hab >ich schon. poste den doch mal hierrein, dann schauen wir drüber und könnten dir sagen, was gut und was schlecht dran ist... dann haben wir auch eine ahnung, was du in deinem text einbauen könntest :-) >Also wenn ich das ganze aber komplett neu in Bascom schreiben möchte. >Ist es möglich sagen wir mal eine Datei für den SHT11 zu schreiben.Weil >die hätte ich schonmal.Dann eine für den Tsop usw. und diese dann in >sagen wir mal eine main datei einzufügen.Das wär für mich einfacher weil >ich Teilabschnitte programmieren könnte. möglich wär das schon, aber dadurch machst du den code unnötig größer und könnte passieren das er dann nicht mehr frei kompilierbar wäre, was mir auch schon oft passiert ist... aber im prinzip geht das schon, würd ich aber nicht wirklich tun... mach lieber alles schön kommentiert in einer bascom datei und gut ist... LG Giuseppe
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.