Gefunden für atmega16 timer - Zum Elektronik Forum






1 - Atmega16 mit THMOD-I2C als Slave... keine Rückmeldung -- Atmega16 mit THMOD-I2C als Slave... keine Rückmeldung




Ersatzteile bestellen
  Ach das tut mir leid, ich hab den Plan zum Posten erstellt und auch noch die 2 Pins vertauscht.. Auf dem Steckbrett ist aber alles in Ordnung...
JTAGEN ist aus, danke.

Ich hab jetzt den ATmega16 getauscht und die Start-Kondition läuft
Wirklich eigenartig... ich hab alle Timer, USART, ADC usw am laufen gehabt ... naja, wie auch immer es läuft.

Ich werde jetzt mit Hilfe den Routinen von dir versuchen etwas auszulesen.
Melde mich dann, vielen Dank ! ...
2 - Probleme TWI (I2C) Atmega 16 -- Probleme TWI (I2C) Atmega 16
Welcher Controller ist denn eingestellt oder wie ist der Compileraufruf (damit kenne ich mich mehr aus ).

Das müste beim GCC sowas wie -mmcu=atmega16 sein.

Sollte der falsche µC ausgewählt sein, würde mich nichts wundern .

Wie dem auch sei, es scheint entweder ein Softwareproblem zu sein, oder ein elektrisches. Sollte sich rausstellen, dass softwaretechnisch alles in Ordnung ist, musst du wohl oder übel mal mit dem Oszi ran.

Edit:
Also keiner der Statuskodes ergibt wirklich Sinn außer 0xf8.
Da stimmt also was bei dir nicht! Es könnte sogar sein, dass du wirlich für einen falschen Prozessor kompiliert hast und die IO-Adressen nicht alle stimmen... Aber soweit kann ich von hier aus nicht denken!

Also, folgendes Programm sollte passen:

inline uint8_t i2c_stat(void) { return TWSR & 0xf8; }

uint8_t ein_byte_senden(uint8_t byte)
{
register uint8_t ret = 0;

i2c_start();
if( (ret=i2c_stat()) != 0x08 ) goto i2c_err; /* Stat fehlg. */
i2c_transmit(0x46 + 0);
if( (ret=i2c_stat()) != 0x18 ) goto i...








3 - Mikrowellecontroller programieren -- Mikrowellecontroller programieren

Offtopic :Fiech, mache bitte Gebrauch von den Code-Tags. So (=ohne) werden die Postings sehr schnell unübersichtlich im Fritz (äh Fred ). Ausserdem bleibt die Einrückung in Code-Tags bestehen. Sehr langer Code kann hingegen besser als Textdatei angehängt werden.
Edit: Erst die vorherigen Beiträge lesen, dann meckern
Also im einfachen Windows-Style:
1. Möglichkeit: Code einfügen, markieren und den Button "Code" über dem Editor-Fenster drücken.
2. Möglichkeit: Code-Button drücken, Text einfügen, "Code*" Button nochmal drücken.
3. Möglichkeit: Den bbcode "(code)hier Code einfügen(/code)" mit eckigen Klammern selbst eingeben.

Nochmal Edit, diesmal Themenbezogen:
TCCR0 und TIFR sind so genannte Ports, in diesem Fall Timer/Counter Control Register 0 (TCCR0) bzw. Timer/Counter Interrupt Flag Register (TIFR)
Näheres dazu im Datenblatt der AVR ATmega (ATmega8 oder ATmega16 z.B.), kostenlos bei ...
4 - Real Time Clock IC an AVR -- Real Time Clock IC an AVR
Ein fröhliches, vorweihnachtliches Hallo an Alle!

Ich versuche , aus reinem Spass an der Freude, AVRs in Assembler zu programmieren. Also deklariere ich generell mich als Anfänger!

Lauflichter, (interne)Timer, LCD Ansteurerung, etc. klappen zwar nicht immer auf Anhieb, aber mit genügend "Hirnschmalz" geht es dann doch!

Nun möchte ich mal die Kommunikaton zwischen zwei Bausteinen austesten und auch verstehen.

Als neues Bastelundverstehprojekt erdachte ich mir eine Uhr.

Es soll ein ATmega16, zweizeiliges Display und eine externe RTC zum Einsatz kommen.

Nun ist meine Frage, welche RTC (von den vielen erhältlichen) auch bei Re.....t oder so günstig zu erwerben ist, und ob Jemand bei evtl. Verständnisproblemen meinerseits, bereit ist, mir unter die Arme zu greifen. Auch Links zu diesem Thema sind willkommen.
Am liebsten wäre mir eine serielle Verbindung zwischen RTC und AVR (an I2C traue ich mich noch nicht heran).
Ralfi



[ Diese Nachricht wurde geändert von: Tim Taylor am 19 Dez 2008 18:19 ]...
5 - Welcher AVR Microcontroller? -- Welcher AVR Microcontroller?
Tag zusammen

Ich bin auf der Suche eines neuen AVR Microntroller. Bis jetzt habe ich einen ATmega48 verwendet. Leider gehen mir jetzt bei diesem Typen die IO's aus. Also muss ich mich nach etwas grösserem umsehen. Mein momentaner Favorit wäre der ATmega16(2).
Was würdet ihr mir empfehlen?
Ich brauche eigentlich nur einen ATmega48 mit mehr IO's und die gleichen Funktionen (UART, PWM, Timer, I2C).
IO Expander habe ich mir auch schon angesehen aber ich bin zum Schluss gekommen das ich lieber auf einen grösseren AVR Typen wechseln möchte.

Die ATmega4* Serie ist glaube ich eine der neusten AVR Microcontrollern.
Wie sieht es mit dem ATmega16 aus? Ist der veraltet? Denn ich möchte nicht dass er kurz nachdem ich ihn eingesetzt habe schon wieder abgekündigt wird.

Ich danke schon einmal für eure Empfehlungen.

Gruss Mathias

...
6 - Software-Reset -- Software-Reset
Moin,

Habe hier grade einen Bootloader in Assembler, den ich vor langer Zeit schrieb, komplettiert, indem ich das Gegenstück auf dem Rechner geschrieben habe.

Nun ist der so gemacht, dass er möglichst klein ist - er belegt etwas weniger als 256 Bytes - das sind beim ATmega16 bspw. 2 Pages / Seiten.

Mein "Problem" ist jetzt, dass der Bootloader nur die wichtigsten Sachen macht:
er knippst die Interrupts aus während des Schreibvorgangs, er initialisiert den Stack neu, er hat eine eigene Routine zum Senden und Empfangen der Daten über RS232. Er führt auch eine Verifizierung des Programmkodes durch, sodass sofort gemeckert wird, wenn ein Fehler auftrat.

Das ist alles schön und gut, aber hat jemand 'ne Ahnung, wie ich nach dem Updatevorgang einen Reset machen kann?

Bisher mache ich das so, dass der Bootloader nach erfolgreichem Schreiben einfach den Reset-Vektor in den Programmzähler lädt (r31:30) und per ijmp da hinhüpft. Zurückkehren muss er ja nicht. Damit ist aber kein richtiger Reset durchgeführt worden. Ich will aber, dass der ganze Chip neustartet.
Ich hatte mir überlegt, einfach einen Pin mit dem Reset-Pin und einem Zeitglied von ein paar ms zu verbinden, und dann softwaremäßig den Reset-Pin kurz auf 0 ziehe. Aber ...
7 - Stoppuhr -- Stoppuhr
Hi, ich will eine Stoppuhr bauen

Ich benutze einen ATMega16. Um die Zeit zu messen gehe ich fogendermassen vor:

1 Versuch mit dem 8-Bit Timer
Beim vergleich mit einem Funkwecker stellte sich heraus dass die µC Uhr pro Tag entweder 2,5h vor oder 1h nach lief. Das war untragbar.

2.Versuch mit dem 16Bit Timer

Die besten ergebnisse habe ich erziehlt wenn ich den µC auf 8MHz laufen lasse. Den Timer habe ich dann mit einem Prescaler von 64 hochzählen lassen. Wenn der Timer einen bestimmten wert erreicht hat (genauer gesagt der TCNT1 hat den OCR1A erreicht), wurde ein interrupt ausgelöst. In diesem Interrupt wird nichts weiter getan als eine Variable zu erhöhen und den Timer wieder von vorn laufen zu lassen. (Das ganze gebe ich auf einem LCD aus)

CPU_f=8MHz
Prescaler=64
Timer_f=125000Hz
Overflowwert (OCR1A)=62500
Mit diesen Einstellungen würde der Timer alle 0,000008s eins hochzählen, bis er 62500 erreicht hat, dann wird ein Inerrupt ausgelöst.
Das bedeutet, das Interrupt wird alle 0,000008s*62500=0,5s ausgeführt und Inkrementiert eine Variable, die die Halben Sekunden zählt (bei mir "_TIMER_halfsec_mask" genannt).
So wollte ich die Zeit Messen (bzw. Zählen)

Leider funktionierte das nicht ausreic...
8 - Problem beim Brennen mit AVRISPmk2 und AVRStudio -- Problem beim Brennen mit AVRISPmk2 und AVRStudio
Ich habe noch ein problem "der Timer"

ich habe nen ATMega16 der mit 8MHz läuft

Ich habe den TIMER0 (8Bit) auch mit 8MHz laufen (Prescaler=0).
d.h. alle 1.25*10exp-7 Sekunden zählt er um eins hoch.
Wenn der Timer den Wert 160 erreicht hat sind genau 20µSekunden vergangen (1.25*10exp-7*160=2*10exp-5)

Immer wenn 20µSekunden vergangen sind läuft die Interruptroutine los und zählt die µSekunden und die Sekunden.

Damit habe ich mir eine Uhr gebastelt.

Das problem ist die Uhr geht vor. (in 8Minuten geht sie 16 Sekunden vor).

Woran liegt das?

Edit: Läuft die CPU garnicht mit 8MHz, sondern mit mehr? (ich nutze den internen Oszillator) Wie misst man dann genaue Zeittakte?

[ Diese Nachricht wurde geändert von: Lodentoni am 18 Dez 2006 23:04 ]...
9 - ATMega16 Counter in C zu langsam -- ATMega16 Counter in C zu langsam
Hi,

ich aktiviere den Timer/Counter0 (8-Bit) mit diesem Code:


Code :
// Takt / 256
TCCR0 = _BV (CS02);
// Als Interrupt konfiguriert
timer_enable_int (_BV (TOIE0));



Das Signal wird hier eingefangen:



Nicht gefunden ? Eventuell gibt es im Elektroforum Transistornet.de für Atmega16 Timer eine Antwort
Im transitornet gefunden: Atmega16 Timer


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 13 Beiträge im Durchschnitt pro Tag       heute wurden bisher 28 Beiträge verfasst
© x sparkkelsputz        Besucher : 184103219   Heute : 54890    Gestern : 48733    Online : 176        14.5.2025    20:18
4 Besucher in den letzten 60 Sekunden        alle 15.00 Sekunden ein neuer Besucher ---- logout ----su ---- logout ----
xcvb 4x ycvb
0.0243680477142