Wenn das zu lange dauert kanns das schon sein.
Für sowas setz ich gerne nur eine Variable in der Int-Routine, prüfe die dann in der Hauptschleife und mach dann die Auswertung von da aus.
Da bleibt...
Art: Beiträge; Benutzer: Slein
Wenn das zu lange dauert kanns das schon sein.
Für sowas setz ich gerne nur eine Variable in der Int-Routine, prüfe die dann in der Hauptschleife und mach dann die Auswertung von da aus.
Da bleibt...
Mahlzeit!
Was für Pullups nimmst du?
Hm, 250kBaudsind bei 16MHz 64 Takte pro Bit, also rund 512 Takte pro übertragenem Byte.
In der Zeit sollte sich eigentlich alles wünschenswerte machen...
Hi!
Ich glaub nicht, daß die Dinger irgendwie fühlbar warm werden sollten...
Mehr fällt mir dazu leider nicht ein :)
MfG
Niels
So läuft das nich. :)
Denken in C, schreiben in C, testen in C, läuft.
Und das ist bei <4kb RAM auch gut so ;)
So nebenbei: Magst du Pointer?
Hm, 0x01 << 8 wird zu 0x100, +1 sollte dann schon...
Mahlzeit!
Evtl. wird das Fenster nach jeder Zeichenoperation upgedatet.
Komplexere Sachen am Besten erst in ein Bitmap im Speicher zeichnen,
wenns dann fertig ist rüber ins Fenster kopieren...
Oder nen DS32KHZ von Maxim nehmen. Nicht ganz einfach zu bekommen, aber Maxim verschickt auch Samples :)
1 Int pro Sekunde geht auch stressfreier:
// ****** timer int, send message to counter tiny
ISR(SIG_OUTPUT_COMPARE1A) {
// --- irgendwas machen
}
// ****** init 16bit timer
void...
Hm, du ersetzt 31mm Draht durch 31mm Draht + 2m Kabel + Steckverbindung.
2,4GHz Antennen werden auch bei WLan genutzt, da gibts jede Menge Bauanleitungen.
Dafür einfach mal Google fragen, eine...
Ich hab das Alles mal (ungetestet!) zusammengetippert, probiers mal so:
NOLIST
.INCLUDE "m16def.inc" ; Headerdatei fuer Atmega 16
.LIST
;
;
Und TCNT0 sollte man afaik auch beim init und bei Tastendruck auf 0 setzen :)
Nur nicht entmutigen lassen!
Timer sind gut.
Derer Möglichkeiten gibt es viele, dies ist eine davon:
while(1) {
while(!digitalRead(kuehlschrank);
/* geschlossen */
while(digitalRead(kuehlschrank);
/* offen */
}
...
PB7 bleibt Ausgang?
Was passiert wenn das RAM überläuft?
Der 2313 hat 128 byte sram. Das wird vom Programm von unten nach oben mit Variablen vollgeschrieben.
Von oben nach unten wird der Stack größer, also...
Schau mal hier:
http://stores.ebay.de/Rubidium-and-GPS-DO-From-China?_trksid=p4340.l2563
Alles was man sich nur wünschen kann und der Verkäufer ist OK.
Die 10MHz Trimble OCXO sollten für deine...
Mahlzeit! Ich tät den DS1307 nehmen. Lt. Datenblatt läuft das Ding mehr als 10Jahre mit einer Lithium-Knopfzelle (z.B. CR2032).
Dazu gibt es einen extra Pin, Knopfzelle einfach nur anklemmen und von...
Jain.
die meisten GPS Empfänger geben 1x pro Sekunde Positionsdaten aus (oder können so konfiguriert werden). Die USART kann nun einen Int auslösen, sobald ein byte empfangen wurde. In der ISR wird...
Siehe unbenannt2:
Mega1 als I2C Master, Mega2 als slave.
Alle paar ms Mega1 den Mega2 pollen lassen, dabei Daten zur Bedieneinheit schicken und Zustand der Bedieneinheit abfragen.
Zum Abfragen...
Mahlzeit!
Weiß nicht:
PORTB|= 0xFE;
Besser:
PORTB = 0xFE;
Wie hast du den Taster beschaltet?
Gegen VCC oder GND?
Mahlzeit!
3 Schüsse ins Blaue:
1. Timing Problem?
void SendDataPackage(uint8_t Identifier, uint16_t value) {
// --- value zerlegen
uint8_t highB = (uint8_t)(value >> 8);
...
Mahlzeit!
Sieh auch auch noch eine Verbindung vom square wave out (SQW/OUT) zu einem der externen Int Pins des AVR vor.
Dann brauchst du die Zeit nur zu jeder vollen Sekunde bei einem externen...
NMEA Empfänger senden standardmäßig mit 4800 Baud und bei dem 'inverted' bin ich mir auch nicht ganz sicher :)
probiers mal so:
#include <avr/io.h>
int main (void) {
DDRB = 0x03;
PORTB = 0x00;
DDRC = 0x00;
Mahlzeit!
Ich tät einen Elko (470...1000 µF) vor den 7805 und je einen 100nF Kerko direkt an die Pins der Spannungsversorgung vom AVR und RFM tun.
Vllt. hilfts ja :-k
Scheißding...
Probier mal den Code aus deinem ersten Post, aber stell im Projekt mal die Optimierung von -Os auf -O3.
Sonst passieren in der ISR nur komische Sachen. ](*,)
Zu deinem code:
...
on = 0;
if (!on)
...
und
...
on = 1;
if (on)
...