-
-
Erfahrener Benutzer
Robotik Einstein
Klar, man kanns auch anders lösen aber
<pre>
try{
// irgendwas
} exception ( // Ausnahme ) { // MIST! }</pre>
Ist nicht viel umständlicher. Ist geschmackssache denk ich 
Edit:
Folgendes Problem
<pre>#include <avr/io.h>
#include <stdint.h>
int main(void){
DDRB |= (1 << 0); // Set LED as output
TCCR1B |= (1 << CS12); // Set up timer at Fcpu/64
for(;; ){
if(TCNT1 >=62500){
PORTB ^= (1 << 0); // Toggle LED
TCNT1=0;
}
}
}
</pre>
Meinen berechnungen zur folge müsste die LED 1mal Pro Sekunde Blinken. Das würde sie aber, laut Simulation, einmal in einem Jahr machen. Der Counter zählt Munter hoch und würde das bis zu 62500 tun... Takt ist 16Mhz
Auf die 62500 komme ich mithilfe des AVR Freak Tutorials und der Formel die dort steht
<pre>clc
clear
Target_Frequency=1;
Prescale = [1 8 64 256 1024];
Input_Frequency = 16e6;
for m=1:5;
Target_Timer_Count = (1 / Target_Frequency) / (Prescale(m) / Input_Frequency)
end</pre>
hab das dann mit MatLab berechnet und gesehen "Aha, 16bit Timer kommt sowieso in Frage, Prescaler nehm ich den 256er weil der perfekt in den 16bit Timer passt und gut...
Oder liegt das an der Simulation?
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen