ISP programování AT89S52

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
MirrA1
Příspěvky: 531
Registrován: 30 srp 2006, 00:00

ISP programování AT89S52

#1 Příspěvek od MirrA1 »

Přešel jsem z PICů a z assembleru na Atmely a na programovací jazyk C. Momentálně se učím programovat, takže zatím zkouším jednoduché příkazy na rožnutí LEDky, blikání...
Programátor používám pro sériové ISP programování.

Narazil jsem ale na problém, že celé naprogramování procesoru proběhně zprávně, ale poté program neběží a nerožne se mi ani LEDka. Příjde mi, že se procesor chová po každým zapnutí jinak - někdy se ledka rožne a jindy ne.
Kód je opsaný z knihy C pro mikrokontroléry ATMEL 89S52, kontrolér mám zapojen na nepájivém poli kde má zapojeny jen napájecí piny, krystal a připojen ISP programátor.

Nenapadá někoho náhodou v čem by mohl být problém?

Předem díky :-)

#include <regx52.h>

#define LED P0_0
#define LED2 P2_0

void stop ()
{
while(1);
}

void main ()
{
LED=0;
LED2=1;
stop ();
}
Uživatelský avatar
Burajko
Příspěvky: 1819
Registrován: 21 srp 2009, 00:00

#2 Příspěvek od Burajko »

Už druhý krát strihám a furt je to krátke
Uživatelský avatar
MirrA1
Příspěvky: 531
Registrován: 30 srp 2006, 00:00

#3 Příspěvek od MirrA1 »

Takže když si takhle zapojím RESET, tak po připojení napájení mi diody probliknou (svítit by měla jen jedna) a nebo zůstane svítit jedna nebo druhá. Pokud zůstane svítit dioda která dle programu svítit nemá, tak svítí jen asi polovičním jasem. Dále pokud nechám připojené napájení a RST vstup krátce spojím s Ucc, tak diody probliknou a nebo se po několikátém pokusu rožne ta která je naprogramovaná.

Takže mi připadá že celkově je to nějaké divné nestabilní.
Uživatelský avatar
Burajko
Příspěvky: 1819
Registrován: 21 srp 2009, 00:00

#4 Příspěvek od Burajko »

Kontakty mas dobre?Napatie blokovane?Je v tolerancii?
Už druhý krát strihám a furt je to krátke
Uživatelský avatar
MirrA1
Příspěvky: 531
Registrován: 30 srp 2006, 00:00

#5 Příspěvek od MirrA1 »

Burajko píše:Kontakty mas dobre?Napatie blokovane?Je v tolerancii?


teď na to koukám a při každým připojení se napětí na napájecích vstupech rozkmitá s amplitudou okolo 1,5V a frekvencí blízkou frekvenci použitýho krystalu. Takže tam asi někde bude past. Tak ještě mrknu na blokování :- )
Uživatelský avatar
MirrA1
Příspěvky: 531
Registrován: 30 srp 2006, 00:00

#6 Příspěvek od MirrA1 »

Takže jsem bezradnej :-) napájení mám blokovaný, ale stejně to celé kmitá, na všech vývodech portu 0 je obdélník pokaždé o jiné frekvenci...
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#7 Příspěvek od Andrea »

Kam máš připojenej pin 31?
Uživatelský avatar
MirrA1
Příspěvky: 531
Registrován: 30 srp 2006, 00:00

#8 Příspěvek od MirrA1 »

Andrea píše:Kam máš připojenej pin 31?



Tenhle pin zůstal nezapojen. Takže tu byl nejistej stav a mikrokontrolér chudák nevěděl odkud má číst program... Jsem si nevšiml, že to nemám zapojeno :-) Tak ZATÍM to vypadá, že problém je vyřešen :-)

Moc vám všem zůčastněným děkuji :idea:
Uživatelský avatar
MirrA1
Příspěvky: 531
Registrován: 30 srp 2006, 00:00

#9 Příspěvek od MirrA1 »

Tak když už jsme to řešili, tak nebudu zakládat nové vlákno.

Programuji v prostředí Keil uVision - dal jsem dohromady jednoduchý kód pro blikání ledky:

#include <regx52.h>

#define LED P0_1

void cekej()
{
unsigned int i;
for(i=0;i<=50000U;i++);
}


void main()
{
while(1)
{
LED=~LED;
cekej();
}
}


a při kompilaci mě to napíše problém WARNING L16 (UNCALLED SEGMENT, IGNORED FOR OVERLAY) Řešení problému je zde: http://www.keil.com/support/docs/2316.htm nicméně já to nějak nemůžu pochopit o co v tomto případě jde. Může mi to prosím někdo na tom mém konkrétním případě vysvětlit?
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#10 Příspěvek od Andrea »

A funguje to?
Uživatelský avatar
MirrA1
Příspěvky: 531
Registrován: 30 srp 2006, 00:00

#11 Příspěvek od MirrA1 »

Andrea píše:A funguje to?


program je dobře napsán, je to dle knihy. Ale zkompilovat to nejde skrze tuhle chybu.
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#12 Příspěvek od Andrea »

MirrA1 píše: zkompilovat to nejde skrze tuhle chybu.

Dyť to není chyba, jen varování. Nemáš zapnutou optimalizaci, která ten for ve funkci cekej vyhodí a zlikviduje celou funkci?
Uživatelský avatar
MirrA1
Příspěvky: 531
Registrován: 30 srp 2006, 00:00

#13 Příspěvek od MirrA1 »

Je to tak, nejprve nastala tato chyba: http://www.keil.com/support/docs/2334.htm a pak až to výše zmíněné varování. Ale nechápu v čem je problém, jak chybu odstranit.
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#14 Příspěvek od Andrea »

Máš tam víc mainů. Co jsi změnil oproti tomu prvnímu programu, nezapnul jsi něco v nastaveních?
Uživatelský avatar
MirrA1
Příspěvky: 531
Registrován: 30 srp 2006, 00:00

#15 Příspěvek od MirrA1 »

Andrea píše:Máš tam víc mainů. Co jsi změnil oproti tomu prvnímu programu, nezapnul jsi něco v nastaveních?



vůbec nic jsem neměnil. Když ten druhý kód pro blikání přepíšu tím prvním pro svícení, tak to jede. Jen to nechce zkompilovat ten druhý skrze tu chybu a varování.
A jinak jak to myslíš že tam mám víc mainů?
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“