#define OUTPUT 1
#define INPUT 0
#include "main.h"
#include <avr/io.h>
#include "util/delay.h"
int main(void)
{
DDRC = OUTPUT;
while(1)
{
DDRC = 0xFF; // PC0..PC3 as output
PORTC = 0x00; // all PORTC output pins Off
while(1)
{
PORTC ^= 0xFF;
_delay_ms(500);
}
return 0;
}
}
Atmega8 için yukarıda ki kodu yazdım. Fuse bit ayarlarını Leaper 48 programlayıcıda
Lock features enabled : No Lock Bits
BLB0 mode section : mode 1
BLB1 mode section : mode 1
RSTDISBL = 1
WDTON = 1
SPIEN = 0
CKOPT = 1
EESAVE = 1
BOOTSZ1 = 0
BOOTSZ0 = 0
BOOTRST = 1
BODLEVEL = 1
BODEN = 1
SUT1 = 1
SUT0 = 0
CKSEL3= 0
CKSEL2 = 1
CKSEL1 = 0
CKSEL0 = 0
Devre şeması aşağıda ki gibi:
(http://s17.postimg.cc/liphbug7v/ads_z.jpg) (http://postimg.cc/image/liphbug7v/)
PORTC ^= 0xFF; ifadesi yerine
PORTC=~PORTC; ifadesi koyarak dener misin?
Ledlerin yönünü 5V'dan besleme alacak şekilde ayarla. Atmel işlemcilerde dışarı akım verme , yani şemanızdaki gibi bağlantıda ledleri yakma akımı sınırlıdır. Ama içeri akım akıtmaları daha yüksek olduğu için ledlerine daha verimli bir ışık vermesini sağlar. (sadece programda biraz ters olacaktır yani LED'le çıkış lojik-0'da iken yanacaktır.
ilk etapta şeklinde bir deneyin devreniz tamamsa, diğer kodlarınızı da deneyebilirsiniz.
while(1)
{
PORTC = 0xFF;
_delay_ms(500);
PORTC = 0x00;
_delay_ms(500);
}
return 0;
Leaper48 genel bir programlayıcıdır. Eğer ISP özellikle bir programlayıcı edinebilirseniz, işlemciye devreden sökmeden işlemcinize program atabilirsiniz. Özellikle program geliştirirken ISP özelliği size işlemciyi sök tak yapmadan devre üzerinde programlama olanağı tanıyacaktır.
Sönük dahi yanmıyor dirençler 560 ohm fakat tek bir hareket yok. Fuse bitlerinden şüphe ediyorum. Çalıştıramadım hala.
RSTDISBL 1 (Bunu değiştirmeyin)
WDTON 1
SPIEN 0 (Bunu değiştirmeyin)
CKOPT 1
EESAVE 1
BOOTSZ1 0
BOOTSZ0 0
BOOTRST 1
BODLEVEL 1
BODEN 1
SUT1 1
SUT0 0
CKSEL3 0
CKSEL2 0
CKSEL1 0
CKSEL0 1
Bunlar default ayarlar. Int 1Mhz
http://avr8-burn-o-mat.aaabbb.de/avr8_burn_o_mat_avrdude_gui_online.html (http://avr8-burn-o-mat.aaabbb.de/avr8_burn_o_mat_avrdude_gui_online.html)
http://www.engbedded.com/fusecalc/ (http://www.engbedded.com/fusecalc/)
Reset pinini 10K ile pull-up yaptınız mı?
Ledler için başka bir port kullanınız. C portunda reset pini var. Ya da
led sayısını azaltınız.
Reset pinini disable yaparsanız tekrar programlamak zorlaşır. Paralel
programlayıcı ile düzetilebilir. Elinizdeki programlayıcı paralel programla
yapabiliyorsa sorun yok...