Třídy (class) jsou záležitostí C++ a jiných jazyků, nikoli však C. Takže budeš muset nejspíš v nastavení překladače C++ povolit (pokud jsi na gcc) nebo se poohlídnout po jinym kódu.
Projdi si ještě všechny ‘c’ a ‘h’ soubory, zda tam nemáš něco takového:
#define F_CPU 16000000.0
Zkus změnit dělící faktor pro předěličku ADCčka.
A vůbec… teploměr máš řešený jak? Bude ti vůbec fungovat při 3,3V?
A to povolím jak ?
V nastavení projektu v Custom options zkus změnit …\bin\avr-gcc.exe na …\bin\avr-c++.exe což by ses samozřejmě dočetl v manuálu gcc.
Teploměr (DS18B20) by měl fungovat i na +3,3V, teď ko mi zase nějak zázračně funguje.
Teď jsem našel něco jako #define F_CPU 16000000 v makefilu, tak to možná bude potřeba také změnit ?
V projektu jsem změnil nastavení na bin\avr-c++.exe a stejně nejde. Teďko jsem ale u té knihovny četl: This class was written for the Arduino library. Pujde ji vůbec rozchodit pod AVRkem ?
(knihovna je odsuď code.google.com/p/mysudoku/downloads/detail?name=SDCARDFILESpack.zip&can=2&q=)
administrator: přiloženy externí soubory
SDCARDFILESpack.zip (46.9 KB)
V souboru MAKEFILE by se měla hodnota F_CPU měnit v závislosti na tom,
co jsi provedl v “Project->Configuration options”.
Tedy pokud soubor MAKEFILE nebyl vytvořen jiným programem.
Takže jinak řečeno, zkus to změnit.
Tak jsem konečně proměřil napětí na procesoru:
Bez karty
SS 3,28V
MOSI 3,28V
MISO 0,3V
SCK 0V
S kartou (někdy se na chvilku změní)
SS 0,18V
MOSI 2,36V
MISO 3,27V
SCK 1,62V
Není to nějaké divné ? Zvlášť ty 1,62 V ? Nebo se to jenom střídá a multimetr to tak rychle neveme ?
S multimetrem se můžeš jít akorát klouzat
. Bez osciloskopu nebo logickýho analyzátoru nic nezjistíš.
Tak se mi zdá jestli tam není nějaké rušení. Někde jsem viděl zapojení a doporučovali krátký dráty do 10cm, s 18 cm to už prý nefungovalo. Já je mám tak akorát do 10 cm. A pokud nechám nepoužívaný pin z SD slotu (má ještě 2 navíc - prý nějaká detekce přítomnosti karty) neuzemněný tak hned je na něm cca 0,3V, i když není s ničím jiným spojený.
Ta napětí vypadají docela dobře, ale je fakt, že dál se bez skopu nedostaneš.
Co se té délky týká, tak bys ji měl vskutku ještě kousek zkrátit.
Já používám délku zhruba 5cm.
Chci se zeptat, odkud jsi? Takhle přes forum ti už o moc více neporadíme.
už jsem psal , z Prahy
Já to mám teďko takový dost nepřehledný na nepájivým poli. Tak já to nejdřív předělám na plošňák s co nejkratšími vývody.
Takže zapojení mám dobře ? - z mikroprocesoru rovnou na kartu - SCK, MISO, MOSI a SS. Poblíž karty ještě C 100nF mezi napájením a zemí. Někde jsem ještě viděl pull-up z MISO na napájení.
Hmm, Praha je ode mne vskutku kus cesty.
To schématko je v pořádku.
Pokud máš procesor napájen 3,3V, tak jej klidně napoj přímo ke kartě.
Na pull-up na MISO se vykašli.
Já ho tam rozhodně namám.
A ještě bych potřeboval poradit s AVR Studiem
zasložím nový projekt - udělám třeba i jednoduchý program na blikání diodou. Dám Build Active Configuration a on napíše
make: Makefile: No such file or directory
make: *** No rule to make target `Makefile’. Stop.
a nepokračuje dál. Kde je chyba ? Díky za info
Nemáš v nastavení projektu zaškrtnuto “use external makefile”?
nemám, ale když to zatrhnu a odkážu ho na winavr/utils/bin/make.exe tak to napíše
make.exe:1: warning: NUL character seen; rest of line ignored
make.exe:1: *** missing separator. Stop.
není ten make nějaký poškozený ?
to Divous: teď jsem četl na jednom fóru: Taktfrequenz bei der Initialisierung nicht höher als 400kHz = při inicializování frekvence pod 400 kHz
To jako frekvence procesoru ? To si na chvíli upraví sama knihovna ? Na jaké frekvenci ti běží celý program s SD kartou ?
Ne ne. To je frekvence SPI, kterou nesmíš přesáhnout při inicializační sekvenci SD karty.
Jakmile máš inicializaci za sebou, tak lze frekvenci navýšit,
co to dá. 
aha, a jaká je standartní rychlost SPI (pokud ji nenastavím) ? Koukal jsem že jinak se nastavuje přes SPCR a SPSR
Rychlost nastavuješ předěličkou.
To znamená, že si dělíš kmitočet procesoru.
Příklad: Na procesoru použiješ vnitřní RC oscilátor o kmitočtu 8MHz.
U SPI nastavíš dělící faktor 32.
A ejhle … najednou máš na SPI kmitočet 250kHz.
Pokud si ten dělící faktor nenastavíš, tak ti to nejede.
A ještě bych se prosím zeptal - ATMega168 má 2* GND, stačí zapojit jenom jeden z nich, který ? A co nevyužité piny, je lepší je uzemnit, nebo mohou volně viset ?