Alex schrieb:
> also bis jetzt tut sich noch nix.
Wirf den Code weg und schreib ihn neu.
Aber diesmal schreibst du ihn selber und holst dir maximal von einem
einfachen PWM-Beispiel den Code zur Ansicht.
Dein erstes Programm hat keinen ADC, keine UART, kein LCD, kein gar
nichts, sondern nur die PWM.
1 | int main()
|
2 | {
|
3 | Pins auf Ausgang stellen
|
4 |
|
5 | Timer konfigureieren
|
6 | und auf PWM einstellen
|
7 |
|
8 | while( 1 ) {
|
9 | OCR0A = 128;
|
10 | }
|
11 | }
|
(die fehlenden Teile schreibst DU!)
und damit testest du erst mal, ob deine Hardware überhaupt funktioniert,
ob sich also dein Motor dreht.
Danach veränderst du die 128 im COde auf andere Werte und beobachtest
deinen Motor, ob er jetzt mit anderer Drehzahl dreht.
Und erst dann, wenn dieser Punkt abgehakt ist, erst dann nimmst du die
ADC mit dazu!
Nicht alles auf einmal. Sonst stehst du mit einem Haufen Code da, der
nicht funktioniert, und von dem du keine Ahnung hast, wo du mit
Fehlersuche anfangen sollst. Immer in Schritten arbeiten, wobei man mit
ganz einfachem Code anfängt, den testet und dann nach und nach in die
richtige Richtung ausbaut.
Eigentlich fehlt da sogar noch eine Vorstufe.
Ehe man eine PWM auf die Pins loslässt, schaltet man sie ganz einfach
erst mal von Hand auf 'Motor soll VOllgas drehen' - einfach Pin auf
Ausgang und nach Bedarf eine 1 bzw. 0 an die jeweiligen Pins.