Atmel AVR blad w programie ?
Masz problem? Zapytaj na forum elektroda.pl
From: "Carlosek" <jacenty_at_nospam_nefryt.pl>
Subject: Atmel AVR blad w programie ?
Date: 14 Apr 2006 15:01:59 -0700
Witam,
Od dw=F3ch dni walcze z problemem w prostym programie, opisze kr=F3tko
jego dzialanie - przy kazdym przerwaniu powinien zwiekszyc
wartosc rejestru "num_counter" i wystawic go na port B jednak
gdzies lezy blad i
program wraca do etykiety start kt=F3ra inicjuje kontroler i dodatkowo
kasuje ten rejestr, z pozoru wszystko jest OK ale uklad dziala jak
opisalem, HELP !
Z g=F3ry dzieki za pomoc
; *************************************************************************
.include "2313def.inc"
.def STATUS_REG =3DR0
.def TEMP =3DR16
.def num_counter =3DR24
.cseg
.org $0000
rjmp start
.org INT0addr
rjmp ext_int0
start:
ldi TEMP,$50
out SPL,TEMP
ldi TEMP,(1<<ISC01)|(1<<ISC00)
out MCUCR,TEMP
ldi TEMP,$FF
out DDRB,TEMP
ldi TEMP,(1<<INT0)
out GIMSK,TEMP
clr TEMP
mov num_counter,TEMP
sei
MAIN_LOOP:
rjmp MAIN_LOOP
ext_int0:
in STATUS_REG,SREG
out PORTB,num_counter
inc num_counter =09
out SREG,STATUS_REG =09
reti
From: "mIrO" <miro_at_nospam_spamowi_mowie_nie.pl>
Subject: Re: Atmel AVR blad w programie ?
Date: Sat, 15 Apr 2006 00:26:38 +0200
Uzytkownik "Carlosek" napisal w wiadomosci
program wraca do etykiety start która inicjuje kontroler i dodatkowo
kasuje ten rejestr, z pozoru wszystko jest OK ale uklad dziala jak
opisalem, HELP !
probowales wstawic nop'a w te pusta petle programu glownego? o ile pamietam,
kiedy nie bardzo chciala mi dzialac taka pusta petla.
oprocz tego:
ldi TEMP,$50
out SPL,TEMP
proponuje robic ldi temp, RAMEND (czy jak sie tam nazywala ta stala zapisana
w pliku inc)
Nie powinno byc jeszcze jakiegos zapisu do rejestru TIMSK ? (timer interrupt
mask register?)
Juz jakis czas nie pisalem nic na avra, wiec moge cos mylic, ale takie
rzeczy rzucily mi sie w oczy.
--
Pozdrawiam,
mIrO
From: "mIrO" <miro_at_nospam_spamowi_mowie_nie.pl>
Subject: Re: Atmel AVR blad w programie ?
Date: Sat, 15 Apr 2006 00:33:28 +0200
Użytkownik "mIrO" napisał w wiadomości
Nie powinno byc jeszcze jakiegos zapisu do rejestru TIMSK ? (timer
interrupt mask register?)
ecch, przerwanie zewnetrzne, nie wiem skad mi sie tam wzial timer ;)
pzdr,
mIrO
From: Piotr Chmiel <piotr_at_nospam_topaz.zsel.lublin.pl>
Subject: Re: Atmel AVR blad w programie ?
Date: Sat, 15 Apr 2006 10:43:13 +0200
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
--0-2100933369-1145090593=:63156
Content-Type: TEXT/PLAIN; charset=iso-8859-2; format=flowed
Content-Transfer-Encoding: 8BIT
On Sat, 14 Apr 2006, Carlosek wrote:
Od dwóch dni walcze z problemem w prostym programie, opisze krótko
jego dzialanie - przy kazdym przerwaniu powinien zwiekszyc
wartosc rejestru "num_counter" i wystawic go na port B jednak
gdzies lezy blad i
program wraca do etykiety start która inicjuje kontroler i dodatkowo
kasuje ten rejestr, z pozoru wszystko jest OK ale uklad dziala jak
opisalem, HELP !
Czy działa obsługa przerwania?
Bo jeśli nie, to rejestr "num_counter" nigdy się nie zwiększy.
Pozatym podłącz do portu jakieś diody i korzystaj z nich :)
--0-2100933369-1145090593=:63156--
From: "mIrO" <miro_at_nospam_spamowi_mowie_nie.pl>
Subject: Re: Atmel AVR blad w programie ?
Date: Sat, 15 Apr 2006 10:45:05 +0200
Uzytkownik "Carlosek" napisal w wiadomosci
start:
ldi TEMP,$50
out SPL,TEMP
A ja nadal polecam zmienic ten fragment z $50 na RAMEND.
W dokumentacji (s. 17) stoi cos takiego:
The Stack Pointer must be set to point above $60.
Jesli sie nie myle, to $50 < $60, wiec cos jest nie tak.
Konkretnie (s. 18, dol):
ldi temp, low(RAMEND)
out SPL, temp
Ramend to najprawdopodobniej wartosc $DF.
Ustawiajac z palca $50, chyba ustawiasz SPL w srodek obszaru rejestrow
systemowych.
Mam nadzieje, ze jak zmienisz, to zadziala :)
Polecam takze fragment taki, mowiacy jak dziala stos (s. 17) i dlaczego SPL
ma byc ustawiony na koniec ramu, a nie na jego poczatek... (i do tego z
bledem ;) ):
The Stack Pointer is decremented by 1 when data is pushed onto the stack
with the PUSH instruction, and it is decremented by 2 when an address is
pushed onto the stack with subroutine calls and interrupts. The Stack
Pointer is incremented by 1 when data is popped from the stack with the POP
instruction, and it is incremented by 2 when an address is popped from the
stack with return from subroutine RET or return from interrupt RETI.
--
Pzdr,
mIrO
Frakcja polecajaca studiowanie dokumentacji ;)
From: J.F. <jfox_xnospamx_at_nospam_poczta.onet.pl>
Subject: Re: Atmel AVR blad w programie ?
Date: Sat, 15 Apr 2006 12:30:19 +0200
On 14 Apr 2006 15:01:59 -0700, Carlosek wrote:
Od dwóch dni walcze z problemem w prostym programie, opisze krótko
jego dzialanie - przy kazdym przerwaniu powinien zwiekszyc
wartosc rejestru "num_counter" i wystawic go na port B jednak
gdzies lezy blad i
program wraca do etykiety start która inicjuje kontroler i dodatkowo
kasuje ten rejestr, z pozoru wszystko jest OK ale uklad dziala jak
opisalem, HELP !
Watchdog masz wlaczony ?
J.
From: "Carlosek" <jacenty_at_nospam_nefryt.pl>
Subject: Re: Atmel AVR blad w programie ?
Date: 15 Apr 2006 07:05:26 -0700
nie wlaczalem watchdoga, tez podejrzewalem ze petla powoduje
reset, chyba ze watchdog jest wlaczany domyslnie...
pozdrawiam
From: "Carlosek" <jacenty_at_nospam_nefryt.pl>
Subject: Re: Atmel AVR blad w programie ?
Date: 15 Apr 2006 07:20:47 -0700
Dzialaa!!!! pomogla zamiana na:
ldi temp, low(RAMEND)
wielkie dzieki !!!!
pozdrawiam i zycze wesolych swiat
From: "Dr.Endriu" <nmp1_at_nospam_interia.pl>
Subject: Re: Atmel AVR blad w programie ? Pytanie Laika.
Date: Sat, 15 Apr 2006 09:30:34 +0200
W jakim programie napisany jest ten kawalek kodu podany przez kolege?
Czy to nie jest czasami C?
P.S. Sorki tak z ciekawosci pytam.
--
Pozdrawiam
Dr.Endriu
http://nmp1.w.interia.pl
nmp1_at_nospam_interia.pl
From: Piotr Chmiel <piotr_at_nospam_topaz.zsel.lublin.pl>
Subject: Re: Atmel AVR blad w programie ? Pytanie Laika.
Date: Sat, 15 Apr 2006 10:40:12 +0200
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
--0-1858799294-1145090412=:63156
Content-Type: TEXT/PLAIN; charset=iso-8859-2; format=flowed
Content-Transfer-Encoding: 8BIT
On Sat, 15 Apr 2006, Dr.Endriu wrote:
W jakim programie napisany jest ten kawalek kodu podany przez kolege?
Czy to nie jest czasami C?
P.S. Sorki tak z ciekawosci pytam.
Można to napisać w każdym edytorze tekstowym.
I to z całą pewnością nie jest C.
--
Piotr Chmiel
gg: 3440801
--0-1858799294-1145090412=:63156--
From: "Carlosek" <jacenty_at_nospam_nefryt.pl>
Subject: Re: Atmel AVR blad w programie ? Pytanie Laika.
Date: 15 Apr 2006 07:02:28 -0700
hej,
pisze bezposrednio w asemblerze, cenie sobie jego prostote
pozdrawiam