Hallo, ich würde gerne den Bascom Code in C übersetzen, aber da mir noch ein paar Kenntnisse fehlen wollte ich Euch fragen ob Ihr mir vielleicht dabei behilflich sein könntet. Ich bin damit angefangen den c Code zu übersetzen (siehe Anhang). Habe jetzt einen Atmega644 anstatt einen Atmega16 genommen wie im Bascom Code. Das senden mit dem Code funktioniert auch (hoffe das ich bis dahin den Code richtig umgesetzt habe). Nur bei dem empfangen komme ich nicht weiter und besonders nicht wie ich dann den Port mit der Led ansprechen kann. Bin für jede Produktive Hilfe dankbar. Gruß Matze
Lauffähigen Quellcode aus einer brauchbaren Programmiersprache in unverständliches und inhärent fehleranfälliges Kauderwelsch weltfremder und langhaariger Dunkelkammerkinder wandeln, was dann aus für intelligenz- und logikbegabten Menschen nicht nachvollziehbaren Gründen irgendwas und alles mögliche tut, nur nicht das, was es soll? Wein zu Wasser?!
Matze Gw schrieb:
> Bin für jede Produktive Hilfe dankbar.
Soviel dazu.
Vielleicht findet sich trotzdem jemand der mir helfen will
Matze Gw schrieb: > Ich bin damit angefangen den c Code zu übersetzen (siehe Anhang). Na ja. Du hast dir Dinge zusammenkopiert. > Das senden mit dem Code funktioniert auch (hoffe das ich bis dahin den > Code richtig umgesetzt habe). Nur bei dem empfangen komme ich nicht > weiter und besonders nicht wie ich dann den Port mit der Led ansprechen > kann. Das sind eigentlich ziemliche Grundlagen, zu finden im Avr-gcc Tutorial. > Bin für jede Produktive Hilfe dankbar. Im Grunde ja, gerne. Das Problem: Wenn es schon an diesen einfachen Dingen scheitert, was wird dann erst bei schwierigeren Dingen.
1 | int main( void ) |
2 | {
|
3 | char c; |
4 | |
5 | DDRC = (1<<DC6) | (1<<DC7); |
6 | |
7 | init_usart(); |
8 | |
9 | while(1) |
10 | {
|
11 | c = USART_Receive(); |
12 | |
13 | switch( c ) { |
14 | case 'A': |
15 | PORTC |= (1<<DC6); |
16 | break; |
17 | |
18 | case 'B': |
19 | PORTC &= ~(1<<DC6); |
20 | break; |
21 | |
22 | case 'C': |
23 | PORTC |= (1<<DC7); |
24 | break; |
25 | |
26 | case 'D': |
27 | PORTC &= ~(1<<DC7); |
28 | break; |
29 | }
|
30 | }
|
31 | }
|
Wenn du deine Empangsfunktion schon hast, ganz einfach:
1 | char c = getuartbyte(); |
2 | |
3 | switch(c) { |
4 | case 'A': |
5 | tuwas_bei_ascii_zeichen_A; |
6 | break; |
7 | case 'B': |
8 | tuwas_bei_ascii_zeichen_B; |
9 | break; |
10 | case 0x27: |
11 | tuwas_bei_27hex; |
12 | break; |
13 | }
|
Danke euch beiden,
habe den Vorschlag von Karl heinz Buchegger genommen und ein wenig
geändert damit mein AvrStudio nicht mehr meckert
alt: DDRC = (1<<DC6) | (1<<DC7);
Neu: DDRC = (1<<DDC6) | (1<<DDC7); usw.
Nochmals besten Dank an Euch.
Karl heinz Buchegger schrieb:
> Das sind eigentlich ziemliche Grundlagen
Ich bin ja noch dabei alles zu erlernen (Bascom, C, Mikroontroller, GLCD
usw,)aber manchmal sieht man eben den Walt vor lauter Bäumen nicht mehr,
besonders dann nicht wenn man noch nicht solange mit der Materie
vertraut ist.
Werde mein Projekt sofern es dann später mal läuft wie es soll
vorstellen.
Gruß
Matze
Matze Gw schrieb: > Karl heinz Buchegger schrieb: >> Das sind eigentlich ziemliche Grundlagen > > Ich bin ja noch dabei alles zu erlernen (Bascom, C, Mikroontroller, GLCD > usw,)aber manchmal sieht man eben den Walt vor lauter Bäumen nicht mehr, > besonders dann nicht wenn man noch nicht solange mit der Materie > vertraut ist. Ich hab mich schlecht ausgedrückt. Du solltest dich sinnvollerweise zuerst mit den Grundlagen vertraut machen und ein wenig üben und dich erst dann an eine Portierung wagen. Wenn man Software von einem System auf ein anderes portiert, muss man beide Systeme sehr gut kennen. Besonders unangenehem ist es, wenn man ein Programm von Programmiersprache X zu Programmiersprache Y portiert. Dann muss man in beiden Sprachen mehr oder weniger fliessend sein. Dies deshalb, weil man im Grunde eigentlich die Idee des Programms aus Sprache X auslesen muss und auf die typische Herangehensweise in der Sprache Y transferieren muss. D.h. man muss in der Lage sein, den Code in X zu analysieren und gleichzeitig Y gut genug kennen, um das dortige Implementierungsmuster für diese Idee zu kennen. Nicht umsonst sind solche Portierungen von Sprache X nach Sprache Y gefürchtet. Der schlimmste mögliche Fall liegt dann vor, wenn damit gleichzeitig auch noch ein Pradigmenwechsel vollzogen werden muss. Die meisten Programmierer würden wohl die Todesstrafe einer Portierung von zb. Prolog nach Simula vorziehen. So etwas ist ein Himmelfahrtskommando auf Raten.
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.