Cze Wszystkim. Jestem początkujący, staram sie napisac program na mikrokontroler aby generował na portach od PB0 do PB7 przebiegi prostokątne o częstotliwości x2 od poprzedniego portu. Czy ktoś może mi podpowiedzieć jak to wykonać??Czy można ten program zmodifikować? Czy potrzebny jest nowy??
Program:
#include <io.h>
#define tau0 6; //stała czsowa dla 1KHz @8MHz
int main(void)
{
unsigned char licznik=2;
DDRB=0x01; //wyjściem generatora będzie port PB0
TCNT0=tau0; //wpisz staą czasową dla zadanego interwału
TCCR0=2; //timer0 będie pracował z preskalerem Fosc/8
while(1)
{
while((inp(TIFR)&0x02 !=0x02);
//czekaj na ustawienie flagi
//TOV0 (przekręcenie licznika)
TCNT0=tau0; //wpisz sta czsową
if(--licznik=0) //zmiana polaryzacji wyjścia wymaga
//2-krotnego przekręcenia si licznika
{
PORTB^=0x01; //zmień stan wyjścia
licznik=2; //odśwież stan licznika
}
TIFR=1<<TOV0; //kasuje flag przepełnienia
}
}
Podpowiedziano mi że można to zrealizować jak licznik binarny - kazdy bit wg starszeństwa ma się ponoć rżnić o połowe Czy chodzi tu o to że mam 8 bitow z czegfo najmodszy to 25 kHZ i tak x2 i tak wybrać aby czytał f z odpowiedniego bitu i przekazywał na odpowiedni port??
AVR-programowanie w "C" na Winavr
A to znaczy, że jeżeli zaczynasz od 25 kHz, dale 50 kHz , to skończysz na
6,4 MHz, a tego to już procek nie obrobi.
Skontaktuj się na: an177@poczta.fm
6,4 MHz, a tego to już procek nie obrobi.
Skontaktuj się na: an177@poczta.fm