Atmel AVR blad w programie ?



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
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


Poprzedni Następny
Wiadomość
Spis treści
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



Poprzedni Następny
Wiadomość
Spis treści
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



Poprzedni Następny
Wiadomość
Spis treści
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--

Poprzedni Następny
Wiadomość
Spis treści
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 ;)



Poprzedni Następny
Wiadomość
Spis treści
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.


Poprzedni Następny
Wiadomość
Spis treści
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


Poprzedni Następny
Wiadomość
Spis treści
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


Poprzedni Następny
Wiadomość
Spis treści
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




Poprzedni Następny
Wiadomość
Spis treści
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--

Poprzedni Następny
Wiadomość
Spis treści
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