Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => Atmel => Konuyu başlatan: nusyil - 15 Ocak 2013, 21:17:04

Başlık: atmega32 kristalsiz calisir mi?
Gönderen: nusyil - 15 Ocak 2013, 21:17:04
Herkese Merhabalar

Atmega32'yi programlamak icin plaket uzerine bir devre yaptim. AVR Studio6' da programi yazip Burn-o mat programi ile atmega32'ye yukluyorum. Devre cok basit ; led yakip sondurme. Sorun su ki, Isis'te calisan program gercek atmega32'de calismiyor. Yaptigim programlayici'da kristal yok. Programlama yaparken Fuse'leri dahili 1 MHZ osilatoru kullanacak sekilde ayarliyorum. Gercek devre uzerinde kristal kullanimi zorunlu mu dur?

Başlık: Ynt: atmega32 kristalsiz calisir mi?
Gönderen: ilhan_mkp - 15 Ocak 2013, 21:20:58
hocam fuselerden dahili osilatörü aktif edince extosilatör gereekmez ve çalışır.
Başlık: Ynt: atmega32 kristalsiz calisir mi?
Gönderen: nusyil - 15 Ocak 2013, 21:24:59
Ustadim fuse ayarlarim : hfuse = 99h  lfuse=e1h seklinde ve dahili osilator secili. Buna ragmen calismiyor?
Başlık: Ynt: atmega32 kristalsiz calisir mi?
Gönderen: ilhan_mkp - 15 Ocak 2013, 23:27:24
hfuse=d9 yapın bu haliylen jtag disable olacak led hangi pinde bağlı bilmiyorum muhtemlen jtag ile ilgi pindedir.

led pordc üzerindemi ?
Başlık: Ynt: atmega32 kristalsiz calisir mi?
Gönderen: nusyil - 15 Ocak 2013, 23:43:48
Hocam program ile ugrasirken birsey dikkatimi cekti : Program " Delay" adli altprograma dallaniyor ancak oradan geri donemiyor. Sanirim program orada takiliyor. Ancak isin ilginci program Isis'te herhangi bir sorun olmadan calisiyor. Asagida kodu vereyim, bilmiyorum, Assembly biliyor musunuz ancak bilmeseniz bile tahmin yurutebilirsiniz sanirim cunku program cok kisa.

basla:
ldi r20,255
ldi r21,0
out ddra,r20 ; port a cikis olarak ayarlandi
out porta,r21 ; port a sifirlandi
sbi porta,0 ; port a 1.biti set edildi
call delay
cbi porta,0 ; port a 1.biti sifirlandi
call delay
jmp basla
;==========================================================================
delay: ldi r16,255
don2: ldi r17,255
don: nop
dec r17 ; 8051 deki djnz komutu
tst r17 ; Test r17
breq r17sifir ; r17=0 ise dallan
jmp don
r17sifir:
dec r16
tst r16 ; Test r16
breq r16sifir ; r16=0 ise dallan
jmp don2
r16sifir: ret





Programin .hex kodu :

https://hotfile.com/dl/189188037/748f282/deneme.hex.html (https://hotfile.com/dl/189188037/748f282/deneme.hex.html)

Bu da isis resmi :

http://(http://s13.postimg.cc/3qylut87n/led.jpg) (http://postimg.cc/image/3qylut87n/)
Başlık: Ynt: atmega32 kristalsiz calisir mi?
Gönderen: ilhan_mkp - 16 Ocak 2013, 00:14:47
hocam daha asm öğrenmeye calışıyorum ama orada call ile çağırdığınız satırların sonunda ret gibi bişi gerekmiyormu.
Başlık: Ynt: atmega32 kristalsiz calisir mi?
Gönderen: nusyil - 16 Ocak 2013, 00:27:44
Ret komutu altprogramlarin en sonuna eklenir. Bu programda da "Delay" altprograminin en sonunda

r16sifir:   ret

satiri var.
Başlık: Ynt: atmega32 kristalsiz calisir mi?
Gönderen: Kabil ATICI - 16 Ocak 2013, 01:16:59
belirlediğin zamanlama kısa kalıyor olabilir. Çıkışı osilaskop ile incele. Veya tek  yak/söndür ile de gecikme alt programından döndüğünü görebilirsin.
Döngü içindeki port atama işini döngü dışında bırak.

(brne) Eşit değilse dallan komutunu kullanırsan jmp komutundan kurtulabilirsin.

Başlık: Ynt: atmega32 kristalsiz calisir mi?
Gönderen: nusyil - 16 Ocak 2013, 05:44:32
Internette biraz arastirma yaparak sorunu cozdum cok sukur :) Program yazarken ilk once Stack'i ayarlamam gerekiyormus. Bunun icin de programin en basina asagidaki satirlari ekledim :

ldi r16, low(RAMEND) ; stack pointer ayarlaniyor!! Bu ayarlama yapilmazsa program calismiyor!!!!!!!!
out SPL, r16
ldi r16, high(RAMEND)
out SPH, r16

Su an problemsiz calisiyor, cevap yazan arkadaslara cok tesekkurler!!
Başlık: Ynt: atmega32 kristalsiz calisir mi?
Gönderen: GRaFiT - 18 Şubat 2013, 01:07:16
Vay bea kristalsiz çalıştığını da öğrenmiş olduk elbet bir gün lazım olur  ;)