PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : in AVR umschreiben



onemomentpls
14.01.2009, 11:41
Hi, kann man den Code in AVR umschreiben?


void AUSGABE(char adresse,char wert)
{
char x;
// Bevor die Daten übertragen werden, wird zuerst der PIN LOAD auf LOW gesetzt.
// Die Daten beginnen mit dem Bit D15, also MSB
output_low(LOAD);
// Die Datenbits D15-D12 werden übertragen
// Da diese nicht wichtig sind, wird eine 0 übermittelt
for (x=0;x<4;x++)
{
output_low(DATA);
output_high(CLK);
output_low(CLK);
}
// Die Datenbits D11-D8 beinhalten die Registeradresse des MAX7219
for (x=4;x>0;x--)
{
if (bit_test(adresse,x-1)) output_high(DATA);
else output_low(DATA);
output_high(CLK);
output_low(CLK);
}
// Die Datenbits D7-D0 sind die Daten an den MAX7219
for (x=8;x>0;x--)
{
if (bit_test(wert,x-1)) output_high(DATA);
else output_low(DATA);
output_high(CLK);
output_low(CLK);
}
// Zum Schluß wird der PIN LOAD auf HIGH gesetzt, damit ist die
// Datenübertragung zu Ende
output_high(LOAD);
}
Code-Tags verwenden ! (PicNick)

Rofo88
14.01.2009, 12:17
Nein bzw. ich kenne die Sprache AVR nicht.
In Assembler für AVR lässt sich das ohne Probleme umschreiben.

onemomentpls
14.01.2009, 12:28
ich mein ja auch in assembler für avr, aber wie geht das, hab schon halb google durchstöbert, aber hab nix gefunden

PicNick
14.01.2009, 13:01
C-Code in "assembler" umwandeln ist eine typische Arbeit für einen C-Compiler

https://www.roboternetz.de/wissen/index.php/Avr-gcc

wkrug
22.01.2009, 07:19
Dein Codeschnipsel liesse sich schon in Assembler umschreiben.
Das Problem ist dabei, das hier viel mit Werteübergaben gearbeitet wird.
Assembler kann solche Werteübergaben nicht direkt verarbeiten.
Du musst also rauskriegen wo und wie die Werte vom C Programm an die Funktion übergeben werden und wo eventuelle Rückgabewerte stehen müssen.
Ich würde Dir empfehlen das komplette Programm in C zu schreiben, den da sollte dein Codeschnipsel ohne Probleme lauffähig sein.