Zmiana polaryzacji na wyjściu, na Atmega 8A

....nie pasujące gdzie indziej...
ptja
Posty: 2414
Rejestracja: poniedziałek 31 gru 2012, 12:44
Lokalizacja: Łódź

Post autor: ptja »

Nie ma sensu. 1 takt zegara procesora to nie mniej niż 62,5ns.
--
pozdrawiam,
Jarek Andrzejewski
Ada20
Posty: 71
Rejestracja: niedziela 08 gru 2013, 13:26
Lokalizacja: Wroclaw

Post autor: Ada20 »

Witam
Jaki jest sposób na najdokładniejsze duty 50 % ,millis,przerwanie,sprzętowe ,flaga,podział częstotliwości na 2,lub inne ?.
Jak dałam 60000000 us mikrosekund, zamiast 60000 ms milisekund,to mi program skompilował i wgrał do Attiny 13A i Atmega 8A,czy to znaczy,że te wgrane us nie będzie z dokładnością do us tylko do ms ?.
Pozdrawiam
Adela
ptja
Posty: 2414
Rejestracja: poniedziałek 31 gru 2012, 12:44
Lokalizacja: Łódź

Post autor: ptja »

Jak dokładnie potrzebujesz to ustawić? I co: okres czy wypełnienie?
--
pozdrawiam,
Jarek Andrzejewski
Ada20
Posty: 71
Rejestracja: niedziela 08 gru 2013, 13:26
Lokalizacja: Wroclaw

Post autor: Ada20 »

Witam
Okres i wypełnienie ma być jak najdokładniejsze z możliwych.
Okres 120 sekund,wypełnienie połowa z okresu, czyli 60 sekund.
Bardziej zależy mi na dokładnym wypełnieniu, okres może być trochę większy od 120 sekund.
Stan niski na 1 wyjściu najdokładniejsze 60 sekund, i stan wysoki na 2 wyjściu najdokładniejsze 60 sekund i tak stale na zmianę.
Pozdrawiam
Adela
ptja
Posty: 2414
Rejestracja: poniedziałek 31 gru 2012, 12:44
Lokalizacja: Łódź

Post autor: ptja »

To zastosuj przerzutnik (np. typu D w konfiguracji dzielnika przez 2) na wyjściu i generuj sygnał o okresie 60s. Procesor taktuj częstotliwością pochodzącą z zegara atomowego. Ewentualnie generator oparty o atom i dzielnik.
Będzie najdokładniej.
--
pozdrawiam,
Jarek Andrzejewski
Ada20
Posty: 71
Rejestracja: niedziela 08 gru 2013, 13:26
Lokalizacja: Wroclaw

Post autor: Ada20 »

Witam
Czy mógłbyś podać nazwę nazwy takiego przerzutnika D w konfiguracji dzielnika przez 2.
Czy w Atiny 13 i Atmega 8A ,można wytworzyć częstotliwość i potem ją podzielić na 2 i rozesłać ten podział na 2 piny ,na każdy po 60 sekund ,tak jak to jest w CD4047.
Jak to zrobić jak napisać taki program?,a może bez programu da radę,ale wątpię.
Pozdrawiam
Adela
ptja
Posty: 2414
Rejestracja: poniedziałek 31 gru 2012, 12:44
Lokalizacja: Łódź

Post autor: ptja »

Lepiej zrób to na kwarcu i dzielniku, bo za dużo IMHO masz jeszcze wiedzy do uzupełnienia.
--
pozdrawiam,
Jarek Andrzejewski
Ada20
Posty: 71
Rejestracja: niedziela 08 gru 2013, 13:26
Lokalizacja: Wroclaw

Post autor: Ada20 »

Witam
Dlaczego programy, niektóre ,które skompiluje AVR Studio5.1 i można wgrać do uC i działają tak jak chce,a nie zrobi tego MkCLIPSE, a szkoda, bo cieszyłam się,że znalazłam fajny nieduży rozmiarowo program i będę mogła porzucić mega duże AVR Studio.
MkCLIPSE nie skompiluje programu Pyry z 1 strony,a AVR Studio tak i wgrany do uC działa.
Na innym forum napisali dlatego,że nie ma biblioteki czy czegoś tam,jak ma AVR Studio 5.1.
Pozdrawiam
Adela
Ostatnio zmieniony wtorek 10 lip 2018, 09:08 przez Ada20, łącznie zmieniany 2 razy.
Ada20
Posty: 71
Rejestracja: niedziela 08 gru 2013, 13:26
Lokalizacja: Wroclaw

Post autor: Ada20 »

Witam
Przy podłączaniu kwarcu do Atmega 8 dodaje się 2 kondensatory 22pf,po co ?,co się stanie jak podłączę kwarc bez 2 kondensatorów?.
Przecież po to dodaje się kwarc aby wyeliminować RC,a kwarc z kondensatorami zawiera element RC.
Na innym forum napisali mi,że po to dodaje się kondensatory do kwarcu, aby go wzbudzić.
Czy zaprogramowanie kwarcem uC to to samo jak podłączenie kwarcu do uC ?,chodzi o skutek.
Pozdrawiam
Adela
Ostatnio zmieniony wtorek 10 lip 2018, 09:05 przez Ada20, łącznie zmieniany 4 razy.
Ada20
Posty: 71
Rejestracja: niedziela 08 gru 2013, 13:26
Lokalizacja: Wroclaw

Post autor: Ada20 »

Witam
Kod Pyry ze strony 3 nie kompiluje się,dlaczego,jak go poprawić?

#include <avr/io.h>
#include <util/delay.h>

int main (void)
{
unsigned int a=0;

DDRB = (1<<PB1)|(1<<PB3);
PORTB|=(1<<PB1);

for (a=0; a<10000; a++)
{

PORTB ^= (1<<PB3);
//_delay_ms(60000);
}
PORTB&= ~(1<<PB1)
}
Pozdrawiam
Adela
Ostatnio zmieniony wtorek 10 lip 2018, 09:27 przez Ada20, łącznie zmieniany 1 raz.
Awatar użytkownika
Pyra
Site Admin
Posty: 8527
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post autor: Pyra »

Witam
Średnik na końcu linii
Ada20 pisze:
PORTB&= ~(1<<PB1);
Pozdrawiam
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Ada20
Posty: 71
Rejestracja: niedziela 08 gru 2013, 13:26
Lokalizacja: Wroclaw

Post autor: Ada20 »

Witam
Kod się skompilował,wielkie dziękuje.
Pyra mam do Ciebie wielką prośbę,czy nie można przerobić powyższy kod, aby miał zachowaną rozdzielczość, był bez delay ,a z millis.
Pozdrawiam
Adela
Ada20
Posty: 71
Rejestracja: niedziela 08 gru 2013, 13:26
Lokalizacja: Wroclaw

Post autor: Ada20 »

Witam
Pyra na 3 stronie z dnai 16-02-2014, 10:36, napisał:
"Stosowanie bardzo niskich częstotliwości taktowania, według mnie nie ma najmniejszego sensu, bo nie wnosi żadnych korzyści do układu a wręcz same wady. Zauważ, że oprócz samego odmierzania czasu, potrzebne jest jeszcze wykonywanie rozkazów dotyczących zmiany stanu pinów. Przy zbyt wolnym zegarze, czasy te będą relatywnie dłuższe i nie da się ich skompensować itd."

A ja znalazłam taką opinię:

"Dla małego współczynnika wypełnienia osiągamy niesamowitą rozdzielczość 21 bitów, by spaść do rozdzielczości 7,5 bitów dla wypełnienia bliskiego 100%. To dość zaskakujący wynik, bo na końcu zakresu konwencjonalne moduły PWM osiągają lepsze rozdzielczości, na przykład 10 bitów.

Jak temu zapobiec? Nieoczekiwanie i wbrew intuicji poprzez zmniejszenie częstotliwości taktowania, na przykład z 16 MHz do 1 MHz. Graficznie przedstawiono to na rysunku 17. Można też zwiększyć rozdzielczość przez zanegowanie sygnału PWM, kiedy osiągnie wypełnienie 50% (rysunek 18)."

Za:

https://ep.com.pl/artykuly/10765-Nowe_p ... e_cz_.html

https://www.google.pl/search?source=hp& ... 9H5ZLYQ1Oc

Pozdrawiam
Adela
Zablokowany