Komme nicht weiter Bascom in C übersetzen

OP #1619656
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
Angehängte Dateien:
Gast
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:

> 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
}
OP
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.