kto mi przepisze na asembler?

Szukam kogos, kto przepisze funkcje napisana w C na asembler i przetestuje ja. Funkcja napisana jest w GCC na mikrokontroler Atmega32. Niestety brak czasu nie pozwala mi na to bym zrobil to sam. Mam nadzieje, ze znajde tutaj kogos kto zrobi to szybko i za niewielkie pieniadze. Pozdrawiam

Jacek M.

Reply to
Jacek M.
Loading thread data ...

Przepraszam ale zapomnialem podac funkcji w C do przepisania. Oto ona:

#define DI (PIND & (1<<PIND5)) // data input #define CE (PIND & (1<<PIND2)) // chip enable #define CL (PIND & (1<<PIND3)) // clock line

volatile register uchar stanCE, // detekuje wartosc na PD3 oldStanCE=1, stanCL, oldStanCL=1;

void czytaj(uchar* ramkiPtr) { uchar *ramkiPtr, *ramkiPtrBuf=ramkiPtr;

do { oldStanCL=stanCL; do // czeka na narastajace zbocze sygnalu CE { oldStanCE=stanCE; stanCE=(uchar)CE; }while(stanCE>oldStanCE);

do // chip enable { stanCL=(uchar)(PIND & (1<<PIND3)); // czytanie linii portu CL

if(stanCL > oldStanCL) // detekcja narastajacego zbocza CL { *ramkiPtr++=DI; } oldStanCL=stanCL; }while(CE); // chip enable

if((ramkiPtr-ramkiPtrBuf)!=0x50) // jesli rekord jest o innej dlugosci powtorz odczyt rekordu { ramkiPtr = ramkiPtrBuf; // odtworzenie wskaznika bufora odebranych ramek } }while((uchar)(ramkiPtr-ramkiPtrBuf)!=(uchar)0x50); // by odczytac caly rekord } Pozdrawiam

Jacek M.

Reply to
Jacek M.

Jacek M. napisal(a):

Poszukaj w listingach, bedacych wynikiem dzialania kompilatora. Tam powinien byc kod assemblerowy ;--). Bez funkcji bibliotecznych, co prtawda. Ale moze nic z tego nie zostalo uzyte.

Reply to
Marcin E. Hamerla

Użytkownik Jacek M. napisał:

[ciach...] Wydaje mi się, że już gdzies widziałem ten kawałek kodu w C ;-) i podałem w zasadzie gotowe rozwiązanie. Problem w tym, że napisałem to w assemblerze, a Kolega potrzebuje tego w postaci funkcji assemblerowej strawnej dla AVRGCC.

Pozdrawiam Grzegorz

Reply to
Grzegorz Kurczyk

Użytkownik Jacek M. napisał:

Trza tylko usunąć to co niepotrzebne z adresu ;-)

Reply to
Grzegorz Kurczyk
Reply to
Piotr Wyderski

A mozna zapytac z czym to wspoldziala i jak szybko nastepuje zmiana stanow? Bo tak na pierwszy rzut oka to chyba jednak za duzo wymagasz.

to w koncu czym jest ramkiPtr - zmienna lokalna czy parametrem ?

zamiast

wystaczy ze wpiszesz while( !CE) ;

Reply to
J.F.

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.