Program ma ogólnie ustawić częstotliwość na 107,45Mhz, oto moje wypociny
Kod: Zaznacz cały
#include<avr/io.h>
#define F_CPU 4000000
#include <util/delay.h>
int dane;
int main()
{
unsigned int i;
DDRB= _BV(5) | _BV(6) | _BV(7);
PORTB=0xFF;
while (1) {
dane=0b1100010010000101;
PORTB&=~_BV(5);
PORTB|=~_BV(7);
PORTB|=~_BV(6);
_delay_ms(5);
PORTB|=_BV(7);
_delay_ms(5);
PORTB|=_BV(6);
_delay_ms(5);
PORTB&=~_BV(6);
_delay_ms(5);
for(i=0;i>=15;i++)
{
PORTB = (PORTB & ~(5 << 1)) | (5 << ((dane >> i) & 1));
_delay_ms(5);
PORTB|=_BV(6);
_delay_ms(5);
PORTB&=~_BV(6);
_delay_ms(5);
}
PORTB&=~_BV(7);
_delay_ms(5);
PORTB|=_BV(6);
_delay_ms(5);
PORTB&=~_BV(6);
_delay_ms(5);
PORTB|=_BV(7);
_delay_ms(5);
PORTB|=_BV(5);
PORTB|=_BV(6);
_delay_ms(50);
_delay_ms(50);
dane=0b010111000100111;
PORTB&=~_BV(5);
PORTB|=~_BV(7);
PORTB|=~_BV(6);
_delay_ms(5);
PORTB|=_BV(7);
_delay_ms(5);
PORTB|=_BV(6);
_delay_ms(5);
PORTB&=~_BV(6);
_delay_ms(5);
for(i=0;i>=15;i++)
{
PORTB = (PORTB & ~(5 << 1)) | (5 << ((dane >> i) & 1));
_delay_ms(5);
PORTB|=_BV(6);
_delay_ms(5);
PORTB&=~_BV(6);
_delay_ms(5);
}
PORTB&=~_BV(7);
_delay_ms(5);
PORTB|=_BV(6);
_delay_ms(5);
PORTB&=~_BV(6);
_delay_ms(5);
PORTB|=_BV(7);
_delay_ms(5);
PORTB|=_BV(5);
PORTB|=_BV(6);
_delay_ms(50);
_delay_ms(50);
}
}
ogólnie oscyloskopem na wyjściach DATA i ENABLE widać jakieś impulsy(na CLK nie udało mi się nic zauważyć), napięcie strojenia wynosi minimum czyli ~0.12V,czy ma ktoś jakieś pomysły co może być nie tak??