ok. welche lib benutzt du? die originale von der c? oder eine heruntergeladene?
Ich finde einen solchen Abschnitt nicht.
ok. welche lib benutzt du? die originale von der c? oder eine heruntergeladene?
ich benutzte die originale
achso, ok. mir ist aufgefallen, dass im programmcode der erweiterten lib zwischen hinter dem wort SIGNAL immer ein leerzeichen ist. ich denke nicht, dass es daran liegt, aber ich habe bei meinen programmen immer das leerzeichen gesetzt und sie gingen alle. könntest du das probieren?
Nö, es geht nicht. Das hier is mein aktueller Code:
Code:#include "asuro.h" SIGNAL (SIG_INTERRUPT1) { StatusLED(RED); StopSwitch(); } int main(void) { Init(); StartSwitch(); while(1); return 0; }
ok.
nimm mal unter die include zeile noch folgendes:
#include <avr/io.h>
#include <avr/interrupt.h>
diese beiden Zeilen sind in der "asuro.h" bereits drin.
Vielleicht kannst du den Code einfach mal testen? Vielleicht liegts ja doch an meiner Hardware.
Was ist los ?izaseba: beherrsch dich. sprüche helfen hier nicht weiter.
Ich glaube, Du kannst keine Kritik einstecken mein lieber, arbeite mal was daran, bevor Du mir sagst, was ich machen soll
Aber zum Thema:
Mische nicht die Asurolib mit eigenen Sachen, und vor allem nicht mit Interrupts, die in der Lib schon deklariert sind.
Es wundert mich, daß der Kompiler nicht wegen doppelter Deklaration meckert.
Du hast geschrieben, Du machst gerne aller "zu Fuß", also mach das.
Jeder Tastendruck erzeugt eine fallender Flanke an INT1, den Interrupt mußt Du freigeben, Dattenblatt von M8 zur Hand und so geht es :
sehe auch Dattenblatt m8 Seite 66Code:#include<avr/io.h> #include<avr/interrupt.h> ISR(INT1_vect){ PORTB &=~(1<<PB0); PORTD = (1<<PD2); } int main(void) { DDRB = (1<<PB0); DDRD = (1<<PD2); MCUCR = (1<<ISC11); GICR = (1<<INT1); sei(); PORTB = (1<<PB0); while(1); return 0; }
Gruß Sebastian
Linus TorvaldSoftware is like s e x: its better when its free.
ich bin leider nicht in der nähe von meinem elektronik-kram =) sonst gern. lies doch mal den abschnitt des tutorials was ich dir vorhin geschickt habe, und versuche die interruptvektoren auf die "neue" art zu definieren. evtl gehts dann.
wenn deine taster an sich gehen, sollte eigentlich kein fehler auftreten.
@izaseba: Diese Funktion ISR is in der Lib, die ich verwende nicht enhalten. Außerdem werden in der StartSwitch() die ganzen Sachen deklariert, d.h. ich mische gar nix.
@damaltor: Gelesen hab ichs ja schon.
Lesezeichen