25-06-2018, 19:28
I tak reasumując słowa Kaczakata;
To coś generowane Twoim programem, to jest sygnał PWM z wypełnieniem 50%.
Wychodzi, że na pinie Ardu, powinno być Vrms 3.5V
Dla kodu:
wycisnąłem około 145kHz, okres 7µS, czyli zmienna "przerwa" może wynieść minimalnie 4µS.
Gdy pobawię się na szybko w rejestrach:
to wyciskam czas przełączenia w okolicach 185nS, więc udało mi się wygenerować sygnał 2.7MHz.
To się oczywiście do Twojego programu nie nadaje, bo przestawia cały port.
A tak na marginesie- zainteresuj się przerwaniami od licznika, bo tak się to powinno robić.
To coś generowane Twoim programem, to jest sygnał PWM z wypełnieniem 50%.
Wychodzi, że na pinie Ardu, powinno być Vrms 3.5V
Dla kodu:
Kod:
void setup() {
pinMode(8, OUTPUT);
}
void loop() {
digitalWrite(8, HIGH);
digitalWrite(8, LOW);
}
wycisnąłem około 145kHz, okres 7µS, czyli zmienna "przerwa" może wynieść minimalnie 4µS.
Gdy pobawię się na szybko w rejestrach:
Kod:
void setup() {
DDRB = 0xFF;
}
void loop() {
PORTB = 0xFF;
PORTB= 0x00;
}
to wyciskam czas przełączenia w okolicach 185nS, więc udało mi się wygenerować sygnał 2.7MHz.
To się oczywiście do Twojego programu nie nadaje, bo przestawia cały port.
A tak na marginesie- zainteresuj się przerwaniami od licznika, bo tak się to powinno robić.
Jeśli masz problem z kodem lub sprzętem, zadaj pytanie na forum. Nie odpowiadam na PW, jeśli nie dotyczą one spraw forum lub innych tematów prywatnych.