Im Forum und im Wiki
-
Thread
SPI Atmega16M1
Hallo, ich habe Problem mit SPI. Es hat vor ein paar Tagen noch funktioniert, nun geht aber nichts mehr. Wenn ich 8Bit senden will, wird nichts gesendet (Mit LogicAna und Oszi getestet) und der MCU bleibt in der while schleife. Hier der Code: [c]void SPI_INIT(void) { SPCR = (1 << SPE) | (1 << MSTR) | (1 << SPR0); // SPI ENABLE, Master DDRB = (1 << DDB1) | (1 << DDB2) | (1 << DDB7); // CLK, MOSI und MISO als Ausgang } uint8_t SPI_Transfer(uint8_t sByte) { SPDR = sByte; while(!(SPSR & (1<<SPIF))); return SPDR; } [/c] Zuerst habe ich versucht es
-
Thread
Suche ATMEGA16M1
Hallo..... Hat jemand günstig ATMega16M1 abzugeben oder kennt jemand eine günstige Bezugsquelle? Unter 4€ Andre
-
Thread
Atmega16M1 Sleep
Hallo, ich will meinen Mikrocontroller alle 8 Sekunden wecken und Daten auslesen lassen. Das würde ich gerne mit dem WDT machen. Dazu habe ich diesen configuiert: [c]void watchdog_timer(void) { WDTCSR = (1 << WDCE) | (1 << WDIE); WDTCSR = (1 << WDIE) | (1 << WDP3) | (1 << WDP0); // 8 Sekunden } ISR(WDT_vect) { // Daten messen/anfordern ... }[/c] Und meine Main sieht dann so aus: [c]int main(void) { watchdog_timer(); while(1) { set_sleep_mode(SLEEP_MODE_PWR_DOWN); cli(); sleep_enable(); sei(); sleep_cpu(); sleep_disable(); } return 0;
-
Thread
ISP Pins am ATMega16M1
Habe ich hier die Richtigen Pins für die ISP Programmierung eines ATMega16M1 markiert? Reicht evtl.auch nur DebugWire zum Programmieren oder ist die nur zum Debuggen geeignet, da man hier sogar auf den Kerko am Reset Pin verzichten soll, dürfte das ne wacklige Geschichte
> Habe ich hier die Richtigen Pins für die ISP Programmierung eines > ATMega16M1 markiert? Nein. SS ist überzählig, dafür fehlt SCK. Und betreffs Vcc und Gnd ist es ratsam, auch zum Programmieren alle adäquat anzuschließen.
-
Thread
Problem Interrupteinsprung ATMega16M1
Hallo, ich habe gerade ein Problem mit dem Einsprung in eine Interruptroutine. ich habe meinen Interruptvector wie folgt gestezt [code].CSEG .ORG 0x0000 jmp RESET ; Reset Handler reti; jmp ANA_COMP_0 ; Analog Comparator 0 Handler reti; jmp ANA_COMP_1 ; Analog Comparator 1 Handler reti; jmp ANA_COMP_2 ; Analog Comparator 2 Handler reti; jmp ANA_COMP_3 ; Analog Comparator 3 Handler ..... Reset: ldi r16, high(RAMEND) out SPH,r16 ldi r16, low(RAMEND) out SPL,r16 [/Code] Im Datenblatt habe ich folgende Adressen gefunden [code] Address Labels Code Comments 0x000
-
Thread
ATMEGA16m1 CAN-Interrupt
Moin, ich habe hier ein kleines, selbstgebautes Testboard mit einem ATMEGA16m1. Ich möchte mit dem vorhandenen CAN-Controller Nachrichten versenden und auch empfangen. Zum Teil funktioniert das auch schon: Ich kann Nachrichten in Form von MessageObjects erstellen und versenden. Die kommen bei meiner Gegenstation auch an (PEAK CAN/USB-Adapter). Der ATMEGA16m1 empfängt auch Nachrichten meiner Gegenstation und tütet diese korrekt in die MessageObjects ein. Die Nachrichten kann ich dann auch aus dem MOb herausholen, allerdings muss ich dazu das RXOK-Bit
-
Thread
ATMEGA 16M1 und I²C/TWI
Unterstützung. ;-) Allerdings habe ich aktuell eine Frage, die mich seit Tagen umtreibt. Der ATMEGA16M1 wird aktuell in einer Entwicklung von mir verwendet (aufgrund der CAN Fähigkeit) und ich benötige eine Porterweiterung (aktuell: PCA9555DB). Es existiert der Vorschlag beide Bauteile über die
-
Thread
Wozu Bestätigung des Interrupts ATMega16M1?
Hallo, kann mir jemand erklären was es mit dieser Bestätigung genau aufsich hat, was passiert wenn man es nicht macht, wird nach dem beenden mittels reti kein weiterer Interrupt mehr aufgerufen oder landet man in einer Endlosschleife da immer wieder in die Interruptroutine eingesprungen wird nachdem man Sie verlassen/beendet hat? 20.9.2. Interrupt behavior When an interrupt occurs, an interrupt flag bit is set in the corresponding MOb-CANSTMOB register or in the general CANGIT register. If in the CANIE register, ENRX / ENTX / ENERR bit are set, then the corresponding MOb bit is set in the