hallo vilem,
hast du die neuste version der asuro-libary installiert?? ältere unterstützen nämlich nicht den befehl Msleep()
mfg Mattze
Hallo,
der beigefügte Code soll ein einfacher 1sec-Timer (an einem 8 MHz-Asuro) sein, bei dem jede sec eine LED blinkt, aber er funktioniert noch nicht.
Wer sieht, was falsch am Code ist oder fehlt ??? Vermute, dass der timer nicht läuft ?
Danke für Hilfe, Gruss VilemCode:/*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * any later version. * ***************************************************************************/ /*Fcpu = 8 MHz, LED-TIMER 1/sec */ #include "asuro.h" #include <avr/io.h> int main(void) { Init(); DDRD |= (1 << 0x02); // PD2 als Ausgang StatusLED (OFF); Msleep (1000); PORTD = (1 << 0x02); // PD2 gesetzt (StatusLED rot) DDRC |= (0x04); // Port PC2(=ADC2) als Ausgang = Blink-LED-Anschluss TCCR1B |= (1 << CS12); // set up timer at Fcpu/256 for (;;) { if (TCNT1 >= 15624) // {PORTC ^= (1 << 0x02);// Toggle die LED TCNT1 = 0; //Counter zurücksetzen, } } return (0); }
*** fail faster to succeed sooner ***
hallo vilem,
hast du die neuste version der asuro-libary installiert?? ältere unterstützen nämlich nicht den befehl Msleep()
mfg Mattze
Glaubst du es ist eine gute Idee, Hardwareressourcen umzukonfigurieren die eigentlich von der Asurolib verwendet werden? Timer1 wird für die Motorsteuerung benötigt! Wenn du eine Bibliothek verwendest, die von der Hardware abstrahiert, und dann aber gleichzeitig noch auf der Hardware arbeiten möchtest, kommst du nicht umhin, dir anzusehen was die Bibliothek tut und nutzt.
mfG
Markus
Tiny ASURO Library: Thread und sf.net Seite
Sorry, sorry, Markusj, als Newbie kann ich die asurolib noch nicht so richtig lesen (geschweige denn alles verstehen) und wußte nicht, dass die Motorsteuerung timer1 benutzt. Ich wollte den Asuro lediglich als board benutzen und mal die timer-Funktionen ausprobieren. Das hab' ich jetzt gemacht, in dem ich alles asuro-spezifische im code gelöscht habe und siehe die 1-sec-BlinkLED funktioniert. Den funktionierenden code hänge ich nochmals an, der vielleicht auch andere Neulinge interessiert. Vilem
Code:/*Fcpu = 8 MHz, TIMER = 1/sec, BlinkLED = 1/sec*/ #include <avr/io.h> int main(void) { DDRD |= (0x04); // PD2 als Ausgang (daran hängt die rote StatusLED) DDRB |= (0x01); //PB0 als Ausgang (daran hängt die grüne StatusLED) PORTB &= ~ (0x01); // PB0 nicht gesetzt (grüne StatusLED aus) PORTD |= (1 << 2); // PD2 gesetzt (StatusLED rot an) DDRC |= (1 << 2); // Port PC2(=ADC2) als Ausgang //Hardware:BlinkLED-Anode an PC2,Kathode über 560 Ohm an GND TCCR1B |= (1 << CS12); // set up timer at Fcpu/256 for (;;) { if (TCNT1 >= 15624) // check counter {PORTC ^= (1 << 0x02);// toggle die BlinkLED TCNT1 = 0; //counter zurücksetzen, } } return (0); }
*** fail faster to succeed sooner ***
Lesezeichen