Skocz do zawartości

[Bascom] Problem z fukcją WAIT - elektronika czy program


Pomocna odpowiedź

Napisano

Witam,
W książce z BTC "Programowanie mikrokontrolerów AVR w języku BASCOM" oraz na płytce testowej, z której korzystałem na warsztatach ATmega8 była podłączona do zasilania w taki sposób:

Na płytce testowej którą właśnie robię zastosowałem to samo rozwiązanie.

A mój problem jest taki, że przy przykładowym programie który ma zaświecać diode na 1s

$regfile="m8def.dat"
$crystal=8000000

config pinc.1=output

Do
Portc.1=0
Wait 1
Portc.1=1
Wait 1
Loop

Dioda ta świeci przez 8.34s

Co może być tego przyczyną i jak to naprawić?

Czy jest to kwestia błędnego wgrywania programu do uC (używam USBasp + Burn-O-Mat),
czy jest to wina samego procka? A może to coś innego?

fusy ustawione prawidlowo? bo wyglada na to, ze uC chodzi z predkoscia 8 razy mniejsza niz planowana czyli 1 MHz czyli tyle ile ma wew. rezonator w procesorze. (+/- te 0.3 s bo dokladnosc to on ma slaba)

Fusebity nie ustawiane w ogóle, mówiąc szczerze to nie do końca wiem o co z nimi chodzi..

Na warsztacie uC był od początku wsadzony w płytke i tylko robiło się połączenia i program...

Fusebity nie ustawiane w ogóle, mówiąc szczerze to nie do końca wiem o co z nimi chodzi..

Na warsztacie uC był od początku wsadzony w płytke i tylko robiło się połączenia i program...

ATmega8 ma pierwotnie ustawiony oscylator na 1MHz wewnętrzne. Wykorzystujesz tą atmege z warsztatów czy nową? Bo jak nowa to musisz przestawić fusebity.

ATmege8 mam nową(nawet kilka nowych).

Co konkretnie powienienem zaznaczyć?

Trochę tych opcji Oscilator/Clock jest..

Ktoś z na pewno też używa tej nakładki..

wez Fuse hex editor i ustaw:

high na D9

low na DC

czyli 011100:Ext. Crystal/Resonator Medium Freq.; Start-up time: 258 CK + 64 ms; [CKSEL=1100 SUT=01]

czyli 011100:Ext. Crystal/Resonator Medium Freq.; Start-up time: 258 CK + 64 ms; [CKSEL=1100 SUT=01]

w hex editor jest tylko:

przy czym jak daje low:dc to jak wchodze w inna zakladke to mi samo zmienia na e1 lub d9..

w zakladce oscilator clock, jest kilka innych ale w kazdej start-up time jest dzielony na fast i low rising power

zauwazylem ze jest opcja "seve fuses to file". bądz uprzejmy ustawić to, zapisać do pliku i wstawić jako załącznik.. tak chyba będzie najprościej i najszybciej, a ja sobie przeanalizuje to co napisałeś, porównam z tym co w pliku i może zrozumiem...

[@Edit]

Kombinowalem sam i dwa procki przestaly odpowiadac.. w jedny dalem low na DC > aply > write, zapisalo mi fusebity i juz nic wiecej z prockiem nie da sie zrobic ;/

w drugim w zakladce oscilator/clock dalem wszedzie na te 8MHz i tez procek wymiekl po wgraniu tego ;/

C:\Program Files\MCS Electronics\BASCOM-AVR\avrdude\avrdude.exe -C C:\Program Files\MCS Electronics\BASCOM-AVR\avrdude\avrdude.conf -p m8 -P usb -c usbasp  -U flash:w:C:\Documents and Settings\Piotr\NONAME1.HEX:a 

avrdude.exe: error: programm enable: target doesn't answer. 1 
avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.03s

avrdude.exe: Device signature = 0x000000
avrdude.exe: Yikes!  Invalid device signature.
            Double check connections and try again, or use -F to override
            this check.


avrdude.exe done.  Thank you.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...