89s51+RIDE+problem

Feb 09, 2005 6 Replies

Hej Otó¿, mam 89s51 i pod port P0 pod³aczony bajt diodek (oczywi¶cie odwroteni, wiêc sa aktywne zerem). Jak piszê:



#include <reg51.h>



char * tab;



void main() { while(1) {



*tab=0x55; P0=~(*tab);

} }



to rzeczywi¶cie lampki zapalaj± siê na przemian. Ale jak pododajê po gwiazdce:



#include <reg51.h>



char ** tab;



void main() { while(1) {



**tab=0x55; P0=~(**tab);

} }



to wszystkie gasn± (jak teraz zdejmê nagacjê w linijce P0=~(**tab); i bêdzie P0=(**tab); to siê wszystkie zapalaj±). Dlaczego? Nie powinien byæ taki sam efekt jak powy¿ej? I pytanie drugie, dlaczego jak dopiszê na pocz±tku #include<alloc.h> i po oczywi¶cie zadeklarowaniu np. char * tab; wpiszê tab = (char*)malloc(sizeof(char)); to lampki siê ¿arz±? Dlaczego ten dziadowski malloc nie dzia³a? Próbow±³em ju¿ nawet malloc.h ale siê nie kompiluje... Reasumuj±c, dlaczego program z * i z ** nie dzia³a tak samo i dlaczego nie dzi±³a malloc? co robiê nie tak? Pozdrawiam



Apropos malloc: robisz odpowiednio inicjalizacjê pamieci w pliku bodaj¿e startup.a51?

Mister

rozszerzenie pliku assemblera a ja piszê w c... Czy czego¶ nie wiem? Ale bardzo chêtnie wys³ucham ;)

Na co wskazuje ten niezainijowany wskaźnik ?

Moim zdaniem w kosmos wciskasz te 0x55 :) Działa pewno przypadkiem.

Tu bys musiał mieć podwójne szczęscie ...

Nie no, ja wiem o tym, ale co mam zrobiæ, je¶li mi nie dzia³a malloc i nie wiem czemu? Pomysla³em, ¿e mo¿e jest domy¶lny ten program, ale nie bardzo. Badziewie takie. Przerzucê sie na co¶, co ma wiêcej nó¿ek... bêdzie wiêksze prawdopodobieñstwo, ¿e zadzia³a... ;) pozdrawiam P.S. Albo i mniejsze...

Jest pewna szansa ze jako zmienna globalna jest przez C zerowany. A zero ... to chyba wskazuje na R0 :-)

Generalnie zalecane przeczytanie ksiazki od C :-)

J.

On Wed, 9 Feb 2005 12:19:08 +0100, "Grodo"

A moze bys jednak przeczytal podrecznik C ?

J.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required