Gefunden fr avr ätzen timer - Zum Elektronik Forum









1 - PID-Regler zur Drehzahlsteuerung eines Motors -- PID-Regler zur Drehzahlsteuerung eines Motors
z2607 search




Ersatzteile bestellen
  Also, ich war wohl hauptschlich zu ungeduldig, denn die obigen Schritte habe ich schon angewendet gehabt (kenne ich vom Quadcopter tunen). Aber nach einigem herumprobieren funktioniert es jetzt ganz gut, auer bei recht niedrigen Drehzahlen.

Das schwierigste war fast, zuerst berhaupt die richtigen Grenordnungen der PID-Werte zu finden. Es hat natrlich auch nicht geholfen, dass ich in seltenen Fllen einen Overflow in der Berechnung hatte. Ich wollte mglichst mit Integer- bzw. Fixpunkt-Arithmetik arbeiten, da ich Floating-Point-Zahlen auf einem 8bit-AVR schon fast pervers finde , habe es im Endeffekt aber doch auf Fliekomma umgestellt.

Was anderes als numerische Differentiation ist auf einem AVR glaube ich auch nicht mglich. Die Messgre sollte aber so gut wie rauschfrei sein, da ich die Zeit zwischen zwei Tachopulsen auf 0,5s (2MHz-Timer) genau messe (davon ausgehend, dass der Interrupt nicht grade durch einen anderen blockiert ist), und daraus auf UPM umrechne (mit 100Hz auer es ist in den letzten 10ms kein einziger Tachopuls aufgetreten, dann wird gerechnet sobald der nchste Puls kommt). Ganz ohne D habe ich auch probiert, aber da schwingt die Steuerung zu stark ber.

Eines, was ich hineinpro...





2 - X-Kondensator wird warm -- X-Kondensator wird warm
Ich steuere einen Waschmaschinenmotor mit einem IGBT an (Drehzahlregelung ber AVR; work in progress ).
(siehe auch hier: Waschmaschinenmotor anschlieen/regeln)

Zur Zeit ist die Versorgung noch 32V DC, am Ende mchte ich aber 230VAC gleichgerichtet verwenden. Dazu habe ich einerseits nach dem Gleichrichter Elkos (2ser x 2par x 330F@200V). Auerdem habe einen 330nF X-Kondensator parallel dazu (Intention war damit die Spitzen der PWM abzudecken, bis die Elkos "nachliefern"). Alles um spter die 325VDC auszuhalten.

Das eigenartige ist jetzt: der X-Kondensator (mir ist klar, dass dieser in diesem Aufbau nicht mehr die Funktion eines X-Kondensators hat) wird fast genauso warm wie der IGBT (beides ist aber problemlos mit den Fingern zu berhren), wenn der Motor einige Zeit (2-3 Minuten) gelaufen ist.

Die PWM-Frequenz ist ca. 60kHz (mit der gehe ich noch runter; hat sich nur durch mal schnell eingestellten AVR-Timer so ergeben). Der Motor zieht ungeregelt so um die 700-800mA bei den 32V.

Ist ein X-Kondensator nicht als Glttungskondensator geeignet? ...








3 - Mikrowellekontroller oder konventionell? -- Mikrowellekontroller oder konventionell?
Grundstzlich ist so nen C nichts anderes als ein Mikroprozessor, der Recheneinheit, Arbeitsspeicher, Programmspeicher und z.T. Peripheriebausteine bereits integriert hat.
Da gibts von vielen Herstellern unterschiedliche Familien, im Hobbybereich sind aber Atmel AVR und Microchip PIC ziemlich weit vorne dabei, weil billig und einfach zu benutzen.

Um da was anzuschlieen kannst du im simpelsten Fall die einzelnen I/Os setzen bzw. auslesen. Manche davon sind mehrfach belegt und knnen anstelle des digitalen I/O auch Funktionen wie A/D-Wandler oder PWM Ausgang bernehmen. Oft sind auch diverse serielle Schnittstellen wie UART, SPI oder IC integriert.
Dazu gibts dann nen Haufen Register, Timer und Interrupts um auf Ereignisse zu reagieren und das Zeug zu steuern.

Als Betriebsspannung sind 3,3 und 5V gngig, viele Chips knnen aber auch mit einem greren Spannungsbereich umgehen. (AVR je nach Takt und Modell zwischen 1,8 und 5,5V.) Die spucken dann TTL-kompatible Pegel aus die man direkt weiter verwursten kann, oder z.b. mit nem MAX232 auf klassische V.24 umsetzen.
Die Leistung reicht dabei aus um LED oder Kleinsignalransistoren direkt anzusteuern. Aus dem Kopf wren das beim AVR 20mA pro Portpin, bzw. 200mA fr den ganzen Chip - kann mittlerweile auch...
4 - Hilfe:Klartraum-Maske -- Hilfe:Klartraum-Maske
So, ich habe mal ein bisschen was programmiert. Ich habe mich
dann doch fr den Attiny13A entschieden, weil sich bei dem
der Watchdog einfacher nutzen lsst ( WD-Interrupt statt Reset ).
Der Spannungsbereich ist mit 1.8V..5.5V auch sehr entgegenkommend.

Es werden 2 Ports fr die LEDs genutzt. Normalerweise wrde das auch
ein Port schaffen, wenn die jeweils relativ hochohmig angebunden werden.

Strombilanz:
Warte 6h auf REM-Phase 4.5A
Led-Blinkend mit Watchdog (1800ms*4.5A + 200ms * 5mA)/2s = ~ 500A )*
Power-Down-Mode nach REM-Blinken 120nA

Betrieb mit einer CR2032, die grob ber 200mAh verfgen sollte (das
anfngliche 3x-Blinken als Start-Feedback vernachlssige ich mal) :

6.0h Warten auf REM 4.50uA = 270 Ah
0.5h aktiv blinken (0.2/1.8) 500.00A = 250 Ah
17.5h Warten auf nchste Nacht 0.12A= 2.1Ah
= 522Ah Tagesverbrauch
Bei 200mAh sind das -> 383 Tage, die Batterie hlt also ein gutes
Jahr bei tglicher Anwendung.

Wenn es nicht angewendet wird, ist der Idle Strom so gering, dass
die Batterie in diesem Zustand theoretisch 190 Jahre hlt. Es lohnt
sich also nicht mehr, in diesem Bereich zu optimieren oder sich was
an...
5 - Einstellbarer Timer mit 7 Segment -- Einstellbarer Timer mit 7 Segment
Hallo,

ich mchte fr meinen UV Belichter einen Timer bauen. Er sollte so simpel wie mglich aufgebaut sein.
Ich mchte 4 7-Segment Anzeigen verwenden. Die Zeit sollte ber ein Poti einstellbar sein. Mit einem Knopf soll die Belichtung gestartet/unterbrochen werden knnen.

Hab im Internet leider nichts passendes gefunden. Am liebsten wre mir ein Bausatz. Das Ganze sollte mit einem PIC realisiert werden, im Internet habe ich nur Plne mit einem AVR gefunden. ...
6 - Finde den Fehler im Programm nicht (avr-gcc) -- Finde den Fehler im Programm nicht (avr-gcc)
Hallo,

ich hab mal wieder ein Problem. Und zwar hab ich nach lngerer Zeit wieder mit dem Microcontroller programmieren angefangen.
Aber das erstellte Programm will nicht laufen. Compilieren geht.
Aber selbst wenn ich Interrupts nicht einschalte, scheint das Programm nicht durch die Hauptschleife zu laufen.

Momentan bin ich ziemlich ratlos und wrde euch bitten mal kurz drberzusehen. Plattform ist ein Atmega8 der auf internen Takt 1 Mhz laufen soll.

Viele Dank,
Peter

PS: eingefgte Codeschnipsel in der Main-Schleife werden scheibar willkrlich ausgefhrt. Es ist nicht ersichtlich an wlecher Stelle der Controller abstrzt.


Code :
/* Sender */

//Programm fr Sender

#include <avr/io.h>
#import <avr/delay.h>
#define F_CPU 1000000
#include <avr/interrupt.h>



//Funktion definieren

void senden(int a, int b, int c)
{

cli();

int i;
PORTD = PORTD | ( 1<<PD6 ); //Port6 einschalten (Oszillator)

for( i = 0; i < 7; i++)
{ //Prambel senden
PORT...

7 - ATMEGA32-16PU Programm Auslesen mglich? -- ATMEGA32-16PU Programm Auslesen mglich?
Sofern der Hersteller/Programmierer der Software den AVR nicht gegen Auslesen geschtzt hat, ist das mit einem Programmer wie z.B. dem mySmartUSB-Light mglich (jeder andere Programmer kann das auch, aber der genannte ist sehr gut).

Ist der AVR dagegen gesichert, hast du keine Chance.

Der Programmer gibt dir Binrdaten aus, die jagst du durch einen Disassembler wie z.B. avr-objdump der GCC-Toolchain fr AVRs.

Theoretisch kann man diesen Kode so manipulieren, dass die Zeit lnger wird.
Praktisch sollte man AVR-Assembler gut kennen und auch ein wenig Zeit mitbringen.

Als erstes wrde ich die ISR-Vektoren der vorhandenen Timer suchen, eventuell wird die Geschichte dort erledigt.
...
8 - Fugngerampel - Cius3 -- Fugngerampel - Cius3

Offtopic :Was ist das denn bitte fr ein Overkill?
Sowas simples bekommt doch sogar ein mit BASCOM programmierte AVR hin, mit gleichzeitiger Visualisierung der internen Timer auf nem separaten Display.
PS:
Cius.... hat das was mit Wnn zu tun?


[ Diese Nachricht wurde geändert von: ElektroNicki am 16 Jan 2012  0:39 ]...
9 - TLC5940: welches Rasterma hat das NT-Gehuse? -- TLC5940: welches Rasterma hat das NT-Gehuse?
Hi!
Um einem AVR etwas Arbeit abzunehmen und nicht alle Timer verballern zu mssen mchte ich ihm folgenden Kontrollr zur Seite stellen: http://www.ti.com/lit/ds/symlink/tlc5940.pdf
Jetzt frage ich mich allerdings, ob das NT-Gehuse das normale 2,54mm-Pinraster hat oder so eine bescheuerte Sonderform.
Das Datenblatt erwhnt dieses Gehuse bei den Mazeichnungen gar nicht, so leicht kann man es sich als Hersteller natrlich auch machen >.<
Danke im Voraus...
PS: Falls meine Befrchtung stimmt: kennt jemand eine Alternative?
Auf die Auflsung kommts mir gar nicht so an, 8 Bit reichen locker, ne eingebaute Stromregelung ist auch nicht wichtig. Es sollten aber schon mindestens 4 Kanle sein.


[ Diese Nachricht wurde geändert von: ElektroNicki am  3 Nov 2011 22:22 ]...


10 - AVR-Assemblercode von Atmega88 auf -8 umstricken -- AVR-Assemblercode von Atmega88 auf -8 umstricken
Hi!
Ich mchte mir ein Elektorprojekt nachbauen.
Dafr wird ein Atmega88 verwendet, ich habe aber nur den Atmega8 hier.
Ich habe schon etwas ber die Unterschiede gefunden, blicke aber trotzdem nicht ganz durch.
http://www.gaw.ru/pdf/Atmel/app/avr/AVR094.pdf
Z.B. meckert der Compiler ber "out TCCR0A,r16"
Ist irgendwie klar, der Atmega8 hat ja nur einen Ausgang vom zweiten Timer etc.
Aber wie schreibe ich das um?
Geht das berhaupt, oder war der Atmega88 _statt_ dem 8er ntig?
Wre schn, wenn mir jemand weiterhelfen wrde

Code : ;*********************************************************************
; LaserPro.asm
;
; For the ATmega88
;
; Laserprojector steering software
;
; Program settings:
; BOOTSZ = 11, BODLEVEL = 100, CKSEL = 0111, SUT = 11
; (brownout VCC = 4,3V, ext. full swing XTal)
;
;*********************************************************************

.include ...
11 - PWM-Signal erkennen und weiterleiten -- PWM-Signal erkennen und weiterleiten
Hallo,

Ich habe vor ein PWM-Signal zu modifizieren.
Es ist im 20ms Takt mit je 1-2 ms Impulslnge.

Daten:
Atmega644
16Mhz Quarz
AVR-GCC

Nun habe ich mir folgendes ausgedacht:
Wenn ich den Impuls lnger als auch krzer machen mchte, muss ich bevor ich etwas mache, den ganzen Takt "einfangen".

Dazu wrde ich zum erfassen, externe Interupt(s) und zum weiterleiten, Timer verwenden wollen.

Nun frage ich mich wie ich einen ganzen Takt erkennen soll.
Wenn ich auf steigene Flanke triggere, dann bekomme ich den Anfang mit und wenn ich auf fallende Flanke gehe, nur das Ende.

Kann man z.B. auf INT0 sowohl steigende, als auch fallende Flanke gleichzeitig erkennen?

Oder gibt es da bessere Wege dies zu realisieren?


Gru


...
12 - Rckwrtszhler -- Rckwrtszhler
Hallo,

ich habe gerade zwei Links geschickt bekommen die evtl. auch dein Problem lsen knnten.

http://www.blafusel.de/misc/timer.html
http://www.avr-projekte.de/timer.htm#Download

Bei beiden ist alles von A bis Z aufgemalt

Dirk

[ Diese Nachricht wurde geändert von: dr.dirk am 23 Nov 2010 14:37 ]...
13 - Selbstbau eines Lichtweckers mit digitaler Steuerung -- Selbstbau eines Lichtweckers mit digitaler Steuerung
Schnen guten Tag

Ich habe bei meinem Projekt schon gute Fortschritte erzielt.
Im Moment beschftige ich mich schon mit PWM und den Timern.
Dazu habe ich noch eine Frage:
Im Tutorial von mikrocontroller.net wird beim Kapitel ber PWM ( http://www.mikrocontroller.net/articles/AVR-Tutorial:_PWM ) mit dem timer1 im Modus 14 gearbeitet.
Zu bungszwecken wollte ich den Timer nach dem Vorbild aus dem Kapitel in den 10Bit-Modus (Modus 7) versetzen.
Dies gelang zunchst nicht: Der Ausgang schaltete einfach nicht um.
Da ich nicht mehr weiter wusste wollte ich mich damit schon an euch wenden und habe dazu den Code etwas aufgerumt und ausfhrlicher kommentiert. Das verwunderliche war: danach hat es funktioniert, obwohl ich nichts inhaltliches an dem Code gendert habe.
Meine Vermutung war, dass man die Bits zur Timer-Konfiguration in einer bestimmten Reihenfolge schreiben muss (damit meine ich nicht, dass man in 16Bit-Registern zuerst das High- und dann das Low-Byte schreibt).
Um sicher zu gehen wollte ich da lieber nochmal nachfragen ob das wirklich so ist, und wenn ja, in welcher Reihenfolge man die Bi...
14 - Atmega Fahrradtacho -- Atmega Fahrradtacho
Okay hier der Code:
Er gibt nur die Drehzahl aus was aber leicht in km/h umzurechnen wre.

Code :
// Prozessor Taktfrequenz einstellen sofern es nicht eine Vorgabe
// beim Aufruf des C Compilers gab.

#ifndef F_CPU
#define F_CPU 4000000
#endif


#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>

#include <stdlib.h>
#include "lcd-routines.h"

#ifndef TRUE
#define TRUE 1
#define FALSE 0
#endif


volatile unsigned char NrOverflows = 0; // Anzahl der Timer Overflows die waehrend
// der Messung passiert sind
volatile unsigned int StartTime = 0; // ICR-Wert bei 1.High-Flanke speichern
volatile unsigned int EndTime = 0; // ICR-Wert bei 2.High-Flanke speichern
volatile unsigned char ProgrammDurchlauf; // Job Flag



char lcdCounterString[8];
char lcdDrehzahlString[8];


double Erg = 0.0;
double drehzahl = 0.0;




// LCD Position an der das Ergebnis der Frequenzmessung ausgegeben wird
15 - Soundmodul - bauen/anpassen/umstellen -- Soundmodul - bauen/anpassen/umstellen
Hallo Leute,

sorry das ich diesen Post ausgrabe, aber ich suche exakt nach der selben Mglichkeit einen Sound zu generieren!

Allerdings fr ein RC-Car und nicht fr einen PKW.

Es handelt sich um einen BMW M3 E90 Mastab 1:10 bis 1:20.
Es ist kein Fertigbaukasten, sondern die Teile (Bodengruppe etc) werden von einem sehr guten Freund von mir aus Kohlefaser gefertigt. Als Antrieb wird ein Brushless verbaut.

Da aber ein Elektromotor eher nach einer Turbine als einem Verbrennungsmotor (V8) klingt, suche ich eine Mglichkeit dies in die Karosse zu integrieren.

Dafr suche ich Anregungen und Hilfestellungen.
Ich mchte einen Motorsound (einzellner Verbrennungsforgang) als PCM-Wave ber einen Timer mehrfach abspielen lassen, gefolgt von einer Pause. So bekomme ich den Ausstovorgang gefolgt von der "Pause" des Ansaugvorganges akkustisch nachgebildet.

Als VB-Programm luft das ganze ja schon. Experimente mittels fast-PWM bringen mir auch verschiedene Sounds mit akzeptabler Qualitt.

Es hapert aber an den Sound-Files fr den Motor und die angepasste Abspielgeschwindigkeit fr die Sounds selber. Der "Sound"-Befehl von Bascom macht zwar nette piepsgerusche, aber ich wrde gerne die Abspielung ber de...
16 - GSM-Fernschalter Funktionen verndern ber C? -- GSM-Fernschalter Funktionen verndern ber C?
Hallo,

Da ich noch in den Kinderschuhen stecke was C Betrifft, bruchte ich
eure Hilfe. Habe ein Problem, ich wrde gerne ein GSM Fernschaltmodul
von Elektor aufbauen hier
http://www.elektor.de/jahrgang/2008/november/gsm-f...
ist das Projekt einmal beschrieben. Nun ist es dort so das beim
ansteuern das ersten Relais vom C ATmega8 nur eine Sekunde geschaltet
wird. Da ich am ersten Ausgang aber gerne die Standheizung fr ca. 1800
Sekunden (30 Minuten) ansteuern wrde, wollte ich fragen ob es mglich
ist die Firmware die es bei Elektor zum Download gibt dahin gehend um
zuschreiben?
Meine berlegung:

Der Standard ist folgender:
Exit1 Lsst sich immer nur fr eine Sekunde ansteuern.
Exit2 ist Toggelfhig und kann per Jumper umgeschaltet werden auf eine
Sekunde ansteuern
Exit3 ist ber einen Timer der am C angeschlossen ist Steuerbar dort
lsst sich zwischen 1, 5, 10, 15, 20, 30, 45, 60, 90 und 120 Minuten
schalten.

So htte ich es gerne:
Kann man den AVR so umschreiben / Was muss ich umschreiben das:
EXIT1 den Timer bekommt (halt darber die Dauer...
17 - Mein erstes Projekt Countdown -- Mein erstes Projekt Countdown
..so, ist der Thread-Starter gestorben, oder sucht er noch?

Willkommen im Forum!

Hier eine interessante Seite: KLICK_MICH!

Zur Lt-station: schau mal bei KLICK_MICH!..kostet zwar 70 teuronen, ist aber allemal besser als diverse bei Pol*in..oder eine mit Netzteil und Messgert: Link


[ Diese Nachricht wurde geändert von: sepp@kaernten am  8 Feb 2010 20:13 ]...
18 - Timerberlauf in CTC Modus (OCR1A Problem) -- Timerberlauf in CTC Modus (OCR1A Problem)
Hallo,

hab mal angefangen beim atmega interrupts in kombination mit timern zu benutzen.
Leider schert sich das Programm in keinster Weise um den Wert in OCR1A.
Von der Ausgabe her scheint der Timer immer komplett vollzulaufen und dann erst den Interrupt auszulsen.
Verwendet wird ein atmega8.


Code : #include <avr/io.h>
#import <avr/delay.h>
#include <avr/interrupt.h>


//Variablen definieren

int main (void) {
DDRD = (1 << DDD6); // Pin 6 als Ausgang

//Timer mit Vorteiler 8 starten

TCCR1B |= (1<<CS11);

//berlauf setzen

TCCR1A|=(1<<WGM12);
OCR1AL=64;





//Interrupt einschalten
TIMSK = _BV(OCIE1A); //Timer Interrupt enable

sei();

while(1){
}

return 0;
}



//Interrupts

ISR(TIMER1_COMPA_vect)
{
cli();

PORTD &= ~(1<<PD6); //Port6 ausschalten
_delay_ms(200);
PORTD = PORTD | ( 1<<PD...
19 - ATmega8515 mit STK-500 und AVR-Studio 4 -- ATmega8515 mit STK-500 und AVR-Studio 4
@GableGuy200
Spare dir bitte zuknftig die dreiig Fragezeichen, eines reicht vollkommen aus.
Edit: was genau mchtest du denn wissen? Wie man in C programmiert, wie man in C AVRs programmiert, wie man mit dem Studio in C programmiert, wie man das Programm in den C bekommt oder wie man LEDn und Taster programmtechnisch so verbindet, dass man die LEDn mit Tastern schalten kann?
Eswas prziser wre gut .

@Kleinspannung:

Zitat :
Schleife:
-port pin toggeln
-kurze pause
-port pin toggeln
Toggeln ist denglisch fr invertieren. Wrde man dieses Programm so umsetzen, wrde kein wirkliches sichtbares Blinken erzeugt.

So schon eher:

Schleife:
Bit umdrehen
Warten
Schleife Ende.

In C kann man das auf exakt 101 Mglichkeiten bringen, eine einfache ohne Timer und ISR wre die hier:


Code :
#include &l...
20 - Zeitgesteuerte LED's mit Taster und Timer -- Zeitgesteuerte LED's mit Taster und Timer
Hallo Meenzer,

Vorerst: wir haben Code-Tags, damit wird das bersichtlicher .


Achja, deine Taktfrequenz ist wirklich 8MHz? Wenn das schon nicht stimmt, sind smtliche Zeitwerte deines Programmes in der Realitt anders .
Und der AVR tut auch was?

Edit:
hm, also von der Timersache ist das OK, der erzeugt eine Frequenz von etwa 1Hz. Hast du mal daran gedacht, den Timer im Interrupt neuzuladen, also wieder
Load Timer1, 34285

Ansonsten ist das Programm eigentlich in Ordnung. Nur eben den Wert neuladen .
Und die Zhlwerte anpassen, fr 2 Sekunden ist 9 schon viel zu hoch .
Einzig die Frage, ob das Entprellen der Tasten richtig funktioniert. Ich kann mit dem Befehl debounce nichts anfangen, aber wird schon stimmen.


[ Diese Nachricht wurde gendert von: DonComi am 17 Sep 2009 19:28 ]

[ Diese Nachricht wurde geändert von: DonComi am 17 Sep 2009 19:31 ]...
21 - ATMEGA32 liest nur 0xFF aus dem EEPROM -- ATMEGA32 liest nur 0xFF aus dem EEPROM
Hallo!

Irgendwas stimmt nicht mit meinem Quellcode mit Assembler.

Ich kann ohne Probleme verschiedene IC-ICs steuern und auslesen, nur beim DS1307 und sogar beim 24C04 bzw SDA2516 liest der AVR nur 0xFF.

Ich habe verschiedene Tests gemacht um den Fehler einzukreisen.
Zuerst ein Schreibtestprogramm fr den TDA6200:


Code :
;*********************************************************************************************
;* *
;* Testprogramm fr den Siemens TDA6200! *
;* *
;*********************************************************************************************









.include "m32def.inc"


;**** Global I2C Constants ****

.equ SCLP = 0 ; SCL Pin number (port C)
.equ SDAP = 1 ; SDA Pin number (port C)
.equ b_dir =...
22 - Ausfhrungszeit von Befehlen in BASCOM -- Ausfhrungszeit von Befehlen in BASCOM
Hallo zusammen. Um mein Problem zu beschreiben, zunchst was ich hier habe.

Mein ATMEGA8 steuert eine Reihe von Schieberegistern (CMOS 4094) an. Er ist mit 7,3728MHz getaktet.

Das Schieben der Bits nehme ich von Hand vor, d.h. nicht mit SPI o.. sondern durch selbststndiges schalten der Ports.

Das ganze ist als Ring aufgebaut, d.h. wenn ich Daten in die Schieberegister hineinschiebe, lese ich gleichzeitig an deren Ende die Daten wieder in den AVR ein.

Alles funktioniert auch wie es soll und bei einem CMOS komme ich auf ~11000 Zyklen pro Sekunde.

Komisch ist nun folgendes. Habe ich 2 CMOS dran, sind es nur noch ~ 5300 Zyklen und bei 3 noch ~4000 Zyklen.

Das ist eindeutig zu wenig und ich wollte nun gerne bestimmen wo mir hier Zeit verloren geht.

Ich programmiere in BASCOM und meine Frage ist: "Wie kann ich die Ausfhrungszeiten von Befehlen, bzw. Programmzeilen, messen. ODER: Bei was in BASCOM geht viel zeit verloren (Arrays, Funktionen etc.)?"

Die angebotenen Timer (z.B. SysSec) beziehen sich nur auf Sekunden - was etwas zu langsam ist.

hier noch der entsprechende Codeausschnitt:
Code:
23 - PWM fr 4pol-Lfter -- PWM fr 4pol-Lfter
Was du glaub ich noch nicht geschrieben hast: Welche Auflsung soll die PWM denn haben? 8 Bit ist fr Lfter doch etwas bertrieben.

Wie wre es wenn du die 8-Bit Werte fr einen ganzen Port im RAM ablegst? Das 1. Bit steht fr den 1. Lfter, das 2. fr den 2. usw. bis zum achten Lfter. Von diesen Werten gibt es dann so viele wie du PWM Auflsung brauchst, bzw. so viele, dass du bei 25kHz alle durchbekommst (2^n Werte bevorzugt). Die werden dann der Reihe nach gelesen und direkt auf den Port geschrieben, sind alle durch beginnt's von vorn.


Code : loop:
sleep
ld temp, Z+
out PORTD, temp
andi ZL, 0x3F
rjmp loop


Das "andi" macht den berschlag mach 64 Werten. Ist billiger als ein CMP und du hast immer eine konstante Taktzahl pro Durchgang egal ob berschlag oder nicht (die Werte mssen natrlich an passender Stelle im RAM stehen, also bei einer Adresse mit 0xXX00 beginnen). Der Rest sollte klar sein. Pro Durchgang 1+2+2+1+3 = 9 Takte. Das mal 64 kommst du auf 576 Takte bei 5 Bit PWM-Auflsung. Geweckt wird das ganze v...
24 - Mikrowellecontroller programieren -- Mikrowellecontroller programieren

Offtopic :Fiech, mache bitte Gebrauch von den Code-Tags. So (=ohne) werden die Postings sehr schnell unbersichtlich im Fritz (h Fred ). Ausserdem bleibt die Einrckung in Code-Tags bestehen. Sehr langer Code kann hingegen besser als Textdatei angehngt werden.
Edit: Erst die vorherigen Beitrge lesen, dann meckern
Also im einfachen Windows-Style:
1. Mglichkeit: Code einfgen, markieren und den Button "Code" ber dem Editor-Fenster drcken.
2. Mglichkeit: Code-Button drcken, Text einfgen, "Code*" Button nochmal drcken.
3. Mglichkeit: Den bbcode "(code)hier Code einfgen(/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)
Nheres dazu im Datenblatt der AVR ATmega (ATmega8 oder ATmega16 z.B.), kostenlos bei atmel.com herunterzuladen.

Gru Clemens


[ Diese Nachricht wurde geändert von: clembra am 31 Dez 2008  1:...
25 - AVR zu langsam??? -- AVR zu langsam???
Hallo zusammen. Eigentlich geht es darum das die Kommunikation zwischen meinem AVR und dem PC nicht funktioniert. Es kommt immer nur 192dez. bzw. &hC0 an. Gefolgt von 1-3 mal &h00.

Weil mich das schon den ganzen Tag herausfordert, und ich nicht dahinter komme wo der Fehler liegt, hab ich mal einen kleinen Test gemacht und bin auf folgendes Problem gestossen:

Ich habe am ATMega8 einen Quarz von 7,372800 Mhz. Am Port D.6 & D.7 ist jeweils eine LED.

folgendes BASCOM Programm luft:


Code : $regfile = "m8def.dat"
$crystal = 7372800

Dim Tim0_count As Byte

Led_red Alias Portd.7
Led_yel Alias Portd.6

Config Portd = Output

Toggle Led_red

Config Timer0 = Timer , Prescale = 1024
On Timer0 Tim0_isr

Enable Timer0
Enable Interrupts

Do
Loop

Tim0_isr:

Incr Tim0_count

If Tim0_count = 28 Then
Toggle Led_red
Toggle Led_yel
Tim0_count = 0
End If

Return


So, laut meiner Berechnung...
26 - Real Time Clock IC an AVR -- Real Time Clock IC an AVR
Ein frhliches, vorweihnachtliches Hallo an Alle!

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

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

Nun mchte 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 erhltlichen) auch bei Re.....t oder so gnstig zu erwerben ist, und ob Jemand bei evtl. Verstndnisproblemen meinerseits, bereit ist, mir unter die Arme zu greifen. Auch Links zu diesem Thema sind willkommen.
Am liebsten wre 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 ]...
27 - C oder Assembler was ist besser? -- C oder Assembler was ist besser?
Hallo,

das ist eine schwierige Frage, mit Assembler lernt man sehr gut den Aufbau des Controllers kennen und kann so seine Programme optimal anpassen. Bei greren Programmen wird es mit Assembler aber schnell unbersichtlich, auerdem lassen sich Programmteile und -routinen in C leichter in weiteren Programmen wiederverwenden, so dass man nicht jedes Mal das Rad neu erfinden muss.

Ich persnlich habe mit Assembler fr AVR angefangen, bin aber nach einer Weile aus obigen Grnden auf C umgestiegen. Ich wrde Dir empfehlen, Dich erstmal mit dem Datenblatt des Controllers zu beschftigen und vielleicht das ein oder andere kleine Programm in Assembler zu schreiben, z.B. eine LED mit einem Timer blinken lassen, Daten per RS232 zu empfangen und auf einigen LEDs auszugeben etc. Die Bezeichnungen der einzelnen Steuerregister fr Timer und Schnittstellen etc. wirst Du schlielich auch in C kennen mssen. Danach wrde ich mich aber verstrkt auf C konzentrieren, da die Sprache hardwareunabhngig ist und sie Dir frher oder spter an vielleicht ganz anderer Stelle wieder begegnen wird.

Was den oft angesprochenen Geschwindigkeitsvorteil von Assembler angeht: Ein guter C-Compiler wie der AVR-GCC fr die AVR-Mikrocontroller erzeugt von sich aus schon recht guten Code...
28 - Einfaches Assemblerprogramm fr PIC16F627A -- Einfaches Assemblerprogramm fr PIC16F627A
Hallo,

ich bin zwar eher in der AVR-Welt zu Hause, aber das Programm sollte recht einfach sein. Idealerweise verwendest Du einen Timer, der z.B. alle 10 ms einen Interrupt aufrufst. In diesem Timer bringst Du die Abfrage des Tastereingangs und sein Entprellen unter. Bei jedem Timer-Interrupt erhhst Du eine Zhlvariable, sofern der Tastereingang logisch 1 ist. Ist z.B. 5 erreicht (logisch 1 liegt seit 50 ms an, also sicherlich kein Prellen mehr), werden die LEDs weitergeschaltet. Liegen die LEDs der Reihe nach auf einem Port, lsst sich das recht angenehm mit einer Multiplikation mit 2 erreichen.

Ohne Mikrocontroller sollte sich die Aufgabe aber auch mit einem 4017 und einigen weiteren Bauteilen lsen lassen.

Schne Gre,
Bjrn
...
29 - welchen Microcontroller und wie damit umgehen? -- welchen Microcontroller und wie damit umgehen?

Zitat :
Nukeman hat am 20 Jun 2008 00:45 geschrieben :
Der "richtige" Prozessor ist eine Glaubens- und Anforderungsfrage....
Fr den Anfang mal einen erlernen ...


Pic oder Avr ist ungefhr das selbe wie VW oder Opel.
Jeder schwrt auf seine "Marke",kann aber nicht zweifelsfrei begrnden warum...
Ich stand vor nicht allzulanger Zeit auch mal vor dem Problem,mit was ich den nun mit meinem Bescheidenen Horizont anfange.
Hab mich dann letztendlich fr das Pollinboard und den Atmega8 entschieden.Der hat fr die ersten Spielerein gengend I/O Ports,brauchbare Timer und nen A/D Wandler,den sogar ich schon begriffen habe.Und der interne Oszillator lt sich einfach auf ein paar verschiedene Taktraten umstellen.
Was will man als Anfnger mehr...
Und auch wenn mich DonComi und Jornbyte wieder steinigen,ich "arbeite" nach wie vor mit "Bascom"
...
30 - Beamer-Steuerung ber RS232 -- Beamer-Steuerung ber RS232
Moin,

wann muss das fertig sein?
Ab nchstem Donnerstag sind meine Prfungen vorerst vorbei - da knnte ich dir gerne helfen!

Ich wrde das Programm in C schreiben, du msstest mir nur alle ntigen Infos geben (wo hngen die Tasten, welcher Kode soll bei welcher Taste gesendet werden, wie ist der AVR getaktet und welcher AVR ist das?).
Mit WinAVR kann man C kompilieren lassen, du msstest dann nur den fertigen Maschienenkode in den AVR zaubern.

Ich werde das Programm einfach halten, keine Timer, keine ISRs, eine Kodedatei, anstelle der blichen (Header- und Codedatei getrennt, Makefile etc.). ...
31 - Rechteckgenerator mit ATmega8 \"verschluckt sich\" -- Rechteckgenerator mit ATmega8 \verschluckt sich\
Hallo AVR-Experten!
Heute habe ich auch mal ein kleines Problem. Es ist zwar berhaupt nicht kritisch, aber ich htte es gern prinzipiell geklrt und mchte auch etwas dabei lernen.

Kleine Vorgeschichte:
Ich habe auf meiner Arbeitsstelle ein kleines Prfgert fr die Antriebselektronik von Turbomolekularpumpen gebastelt. (Das sind, vereinfacht gesagt, mit 1500 Umdrehungen pro Sekunde laufende Ventilatoren... ) Diese haben zur Rckmeldung ihrer Drehung zwei Hallelemente eingebaut, deren Signale die Elektronik auswertet. Da ich bei der berprfung der Steuerteile die angeschlossene Pumpe nur simuliere, mu ich auch diese Hall-Signale nachbilden. Dazu brauche ich einen "Tongenerator", der zwei symmetrische und komplementre Rechteckfolgen von ~0 bis etwa 4 kHz ausgibt.
Zunchst hatte ich eine Schaltung mit einem 556 gebastelt, die auch prinzipiell funktionierte. Nur war es leider so, da die Frequenz nach oben hin extrem schnell zunahm. Dabei htte ich mir schon eine gleichmigere Zunahme gewnscht, um im besonders interessierenden Bereich (Signalisierung von Drehzahl > 50 % bzw. Abschaltung der Pumpe bei zu hoher Drehzahl) feinfhliger einstellen zu knnen.
Da hatte ich die Idee, einen (fr dies...
32 - Empfehlung Mikrocontroller -- Empfehlung Mikrocontroller
Hm. an einen 18Fxxx Typ habe ich auch schon gedacht, jedoch wre hier nur das zustzliche USB-Modul sowie der 8Bit Hardware Multiplikator interessant. Warum allerdings der Herr Sprut die 18Fxxx Serie fr einen 16Bit Kerntypen hlt erschliet sich mir nicht, denn wie von Microchip angegeben handelt es sich um Mikrocontroller mit 8bit Architecktur und in den verschieden Datenblttern kann man im Block Diagramm eindeutig eine 8Bit ALU erkennen. Es gibt allerdings schon fertige 16Bit Register, welche aus 2x 8Bit bestehen. -> 16Bit Timer, 16Bit Ergebnis der 8Bit Multiplikation usw. .Diese Typen sind aufjedenfall schon mal ein Upgrade.

Das AVR-Projekt klingt recht gut, preislich find ich es schon ordentlich wobei ich das jetzt schlecht einschtzen kann, man hat ja damit viel mehr Mglichkeiten rum zutffteln ^^.

Wenn ihr noch Tips oder Erfahrungen mit andern Mikrocontrollertypen habt und einfach posten.


Gre Peingebrecks ...
33 - Solarhaus Nachfhrung -- Solarhaus Nachfhrung
Moin,

ber genau dieses Thema hatte ich mir vor nem halben Jahr im Sommer den Kopf zerbrochen, da ich sowas mal machen wollte fr unsere Module. Der Ertrag steigert sich logischerweise wirklich, der Energieaufwand zum Nachstellen fllt kaum ins Gewicht.

Ich hatte mir diverse Dinge berlegt, bin dann zum Schluss gekommen, keine Sensoren zu verwenden, sondern einen Kalender:

Ein AVR ist bestckt mit einem Quarz, welcher durch Teilung (interner Timer) 1Hz erzeugt, und somit eine einfache Uhr darstellt. Ein DCF77-Empfnger (aus nem alten Wecker) dient zur Synchronisation, sodass selbst bei Temperaturschwankungen die Uhr recht genau bleibt (solange die Elektronik nicht versagt ).

ber ein Getriebe und einen Schritt- oder aber auch 'nur' Getriebemotor wird nun die Solarzelle einen bestimmten Winkel weitergedreht - die Winkel-Ist-Referenz kann von Sensoren am Motor kommen, sodass auch wirklich der richtige Winkel eingestellt wird - Wind darf die Anlage nicht aus dem Gleichgewicht bringen.

In einer Tabelle im C liegen dann die Datenstze, die konkret die entsprechenden Winkel in der jeweiligen Jahreszeit festlegen.


Abgeschreckt haben mich folgende Faktoren:
- Mechanisch nich...
34 - Sieben mal 5x7 LED Matrizen an C betreiben -- Sieben mal 5x7 LED Matrizen an C betreiben
Moin,

bin auch grad (mal wieder) an einem Displaykontroller am Werkeln. Habe mir dafr ein Programm geschrieben, mit dem ich (mehr oder weniger spaeshalber) komfortabel zu Testzwecken die Taktung des Spaltentreibers whlen Kann.

Sogesehen hat mein Kontroller 5 Spalten und 16 Zeilen, die 16 Zeilen werden spter per Schieberegister und Pegelwandler angesteuert.

Wollt eigentlich nur sagen, dass es etwa ab 1kHz ertrglich wird, also ab da erkennt man kaum noch ein Flackern.

Edit:
Das Programm bertrgt die Daten direkt per USB zum AVR, das Programm ist geschrieben fr Linux.



[ Diese Nachricht wurde geändert von: DonComi am 27 Jan 2008 22:55 ]...
35 - [Fertiges Projekt] AVR Display-Controller/Tester (320x240 STN. monochrom) -- [Fertiges Projekt] AVR Display-Controller/Tester (320x240 STN. monochrom)
Hallo,
Die beiden Programme im Anhang dienen dazu ein Controllerloses
230x340-STN-Display, wie es z.B: Pollin unter den Bestellnummern 120 460
und 120 471 verkauft, zu testen.
Die Programme sind fr einen Tiny26 geschrieben. Mit einem etwas
ressourcenstrkeren AVR liee sich auch durchaus ein "richtiger"
Display-Controller realisieren (In Arbeit).
Die beiden Programme dienten aber wirklich nur zum Test+Zeitvertreib,
bevor die Displays im Lager auf ihre eigentliche Bestimmung warten.

Das erste Programm (stn-display-test-extended.asm) erzeugt nacheinander
verschiedene Muster, die "Abspielgeschwindigkeit" ist im Quelltext
einstellbar.

Das zweite Programm (stn-display-test-grafik.asm) gibt ein im Flash
gespeichertes Bild wieder, aus Faulheit ist dieses "Bild" momentan eine
Text- und Musterzeile, welche 8 Pixelzeilen einnimmt, und dann
Programmseitig 30 mal widerholt wird. Ein BilddatenByte enthlt 8
Bildpunkte.

Portiert man die Programme auf einen greren AVR, so lassen sich auch die Zeilen auf einen Timer-Interrupt syncronisieren...

Die beiden Eingangs erwhnten Displays wurden gem folgendem Datenblatt
angeschlossen:
36 - PWM beim ATMega 8 -- PWM beim ATMega 8
Hallo Leute,

ich mchte einen Servo mit einem Atmega8 ansteuern. Damit das Ausgangssignal so genau wie mglich ist, wollte ich die Compare Unit vom 16Bit Timer nutzen. Wenn ich das Datenblatt richtig verstanden habe, kann die Unit direkt auf ein Ausgangspin zugreifen und ich wre nicht mehr Softwareabhngig. (Prozessor luft mit 1MHz)

Es sollte so ablaufen:
Ich schreibe in OCR1AH / OCR1AL einen Wert. Lsche den Timer (TCNT1H / TCNT1L). Und setze den Ausgang (B1) auf 1. Wenn der Vergleicher abgelaufen ist, soll er den Ausgang wieder auf 0 setzen (nach 1,5ms). Nach etwa 20ms (dieser Teil des Programms ist noch nicht fertig) soll wieder alles von vorn beginnen.
Im AVR-Studio funktionert es, aber am Prozessorausgang liegt immer 0 an!
Besser gesagt: ich habe es so geschrieben, dass es im AVR-Studio luft!

Das die Lsung im Datenblatt liegen knnte, wei ich! Es sind nur eine Menge Seiten und alle auf Englisch. Falls mir also jemand direkt eine Lsung vorschlagen kann, wre das sehr hilfreich.

Mein Testprogramm:

.NOLIST
.INCLUDE "C:\m008def.inc"
.LIST

.def Temp1 = R16
.def Temp2 = R17
.def Data = ...
37 - Signal mehrerer Fotodioden (Lichtintensitt) mit C auswerten (Signalkonditionierung) -- Signal mehrerer Fotodioden (Lichtintensitt) mit C auswerten (Signalkonditionierung)
Das Problem ist noch immer das gleiche wie in diesem Thread (schalten ohne physikalischen Schalter), jetzt allerdings mit anderem Ansatz. Ich habe zuerst ja mal an einen kapazitiven Schalter gedacht, aber da davon mehrere (zumindest 8 ) auf engem Raum - Grenordnung 10x10 cm - sein sollten und ich bis jetzt noch nichteinmal einen stabil aufbauen konnte, mchte ich jetzt einen anderen Ansatz probieren (der Vorschlag stammt aus dem anderen Thread).

Die Idee ist mit IR-LEDs von der Seite in eine Plexiglasscheibe hineinzuleuchten, sodass das die IR Strahlung total reflektiert wird und nicht austreten kann. Unter der Platte sind an verschiedenen Stellen Fotodioden. Drckt man nun mit dem Finger auf die Scheibe, wird an der Stelle die Totalreflexion gestrt und die Strahlung kann auf der anderen Scheibenseite austreten. Ist dort eine Fotodiode, "sieht" diese ein Signal (ich habe mir extra eine billige Webcam auf IR umgebaut, um das sichtbar zu machen; es gibt tatschlich sehr deutliche Flecken).

Die Strke des Signals ist dazu noch abhngig von der Entfernung des Druckpunkts von der Fotodiode. (aus zwei Fo...
38 - Drehgeber mit Bascom auslesen und PWM regeln -- Drehgeber mit Bascom auslesen und PWM regeln
Hallchen.

ich bin jetzt in meinem roland walter buch so weit, da ich bei der PWM bin. jetzt wrde ich gerne, statt mit avr Term (ein Terminal programm) das ganze mit nem Drehgeber machen.

Es geht darum mit dem Terminal programm die Helligkeit der PWM-Led zu regeln. da ich aber kein Nullmodemkabel habe wrde ich das Gerne mit nem
Drehregler machen.
Ich habe auch schon bei der Bascom hilfe Hilfe gefunden, aber ich schaff es glaube ich nicht:

- Ihn auszulesen
- Den ausgelesenen wert zu verarbeiten.(also den Timerwert um 1 zu
vergrern bei rechtsdrehung, oder den Timerwert um 1 zu verkleinern
bei linksdrehung

Ist jemand so nett und wrde mir unter die Arme greifen?

Der Drecksack

Hier mal das original Listing, da ich auf Drehgeber abndern mchte


'0604.BAS: Einfacher D/A-Wandler, LED-Helligkeitssteuerung
'Hardware: Nullmodemkabel zum PC, Pin PD5 mit LED verbinden
'----------------------------------------------------------
$regfile = "m8def.dat" 'ATmega8-Deklarationen
$crystal = 3686400 'Quarz: 3,6864 MHz
$baud = 9600 '9600 Baud
39 - AVR Datasheet in Deutsch -- AVR Datasheet in Deutsch

Zitat :
DonComi hat am 22 Okt 2007 13:52 geschrieben :
Das Probnlem ist aber ein anderes: alle Datenbltter sind auf Englisch und man muss sich damit abfinden und bestimmte Sachen einfach dazu lernen.

Richtig. In der Zeit, die man verschwenden wrde um sowas zu bersetzen, wrde ich lieber richtig englisch lernen. Da hat man einfach mehr davon.


Zitat :
Ich wrde mich ebenfalls ber Deutsche Datenbltter freuen

Ich nicht. Ich habe ein paar ltere Datenbltter auf deutsch, aber bei denen verstehe ich nur die Hlfte, denn eingedeutsche Fachbegriffe sind so ziemlich das schlimmste was man machen kann.


Zitat :
Mehr kann man eig. nicht verlangen.
40 - 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 grsserem umsehen. Mein momentaner Favorit wre der ATmega16(2).
Was wrdet 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 grsseren AVR Typen wechseln mchte.

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

Ich danke schon einmal fr eure Empfehlungen.

Gruss Mathias

...
41 - Interrupt ,Bascom und Atmega 8... -- Interrupt ,Bascom und Atmega 8...
Hallo Leute!
Da ihr mir ja versprochen habt, das ich auch ohne neues Unterforum hier meine Anfngerfragen loswerden kann,fang ich jetzt mal damit an...
Inzwischen habe ich es geschafft,diverse Blinker,Lauflicht und eine Ampel zum laufen zu bringen.
Mein nchstes Lernziel war die Sache mit den Interrupts(PWM und Timer haben wir dann spter).Also nach dem Motto,wenn ich einen Taster drcke,soll das Programm dieses oder jenes machen.Funktionierte auch,aber genau verkehrtherum.So wie ich das dann verstanden habe,werten die Atmega 8 auf Int0 und Int1 nur eine negative Flanke als Interrupt.Die Taster auf dem Pollinboard sind aber so verdrahtet,das sie bei Druck "Hi" liefern.Kann man jetzt einen Atmega 8 eigentlich berreden,auch die positive Flanke zu werten,bzw. einen anderen Pin als Eingang zu mibrauchen der dann dem Avr sagt:Bei auftreten dieser oder jener Ereignisses mache bitte das und das und wie mte man da in Bascom herangehen?
Danke.

P.S. noch einen Dank an DonComi!Hab krzlich einen Uraltfred zwischen ihm und dem Bastelheini ausgegraben.Der Inhalt selbigens hat mir mehr geholfen,als alle Literatur die ich bisher in den Hnden hatte ...
42 - Problem mit Pony Prog ISP... MISO auf HI kommt nicht runter... -- Problem mit Pony Prog ISP... MISO auf HI kommt nicht runter...
Hallo,

Ich habe mir damals Assembler einzig mit dem Datenblatt beigebracht. Unter Instruction Set Summary sind alle Mnemonics (das sind die Assemblerbefehle) samt Operatoren, Operationsflaggen und Anzahl an Taktzyklen zur Verarbeitung angegeben.

Ich wrde auch definitiv mit ASM anfangen, habs auch so gemacht.
Da lernt man, wie die CPU arbeitet.

Du kannst mich immer gerne fragen, wenn du in ASM nicht weiterkommst. ICQ klappt ja.


Es ist nur so, ASM kannst du fr diese CPU ur dann richtig lernen, wenn du auch bereit bist, lange im Datenblatt zu lesen, wenn du beispielsweise Hardware wie UART, Timer etc nutzen mchtest.

Neben dem reinen Assembler bietet AVR Studio auch Makros und Prprozessor-anweisungen an. Das ist ein mchtiges Werkzeug. ...
43 - Neues Projekt -- Neues Projekt
Hi blamaster,
geb noch ein paar genauere Infos, so kann man dir noch nicht helfen. Wie viele Relais sollen angesteuert werden. Wie viele Zeiten und welche Zeitrume sollen gespeichert werden (minimale Zeitauflsung). Wie genau sollen die Zeiten eingehalten werden (RTC, DCF77).

Prinzipiel sollte das z.B. mit einem AVR kein groes Problem sein. Ein einfaches Benutzerinterface ist ber die serielle Schnittstelle ohne weiteres zu realisieren... und das Timing ist per Timer auch relativ einfach.

Gru,
SIGINT ...
44 - delay mit C bei AVR-Programmierung -- delay mit C bei AVR-Programmierung
Hallo,

vielleicht habe ich auch einfach das ganze nicht genau verstanden.
Die LED soll also symbolisieren das der AVR noch luft.
Bei der Steuerung mit dem Delay wre es aber doch egal ob der AVR noch luft oder sich aufgehangen hat. Ob er nun hngt oder 100% seiner Rechenzeit zum blinken einer LED aufbringt wre doch gleich, was anderes kann er eh nicht mehr machen.
Besser wre da wohl dann echt ein Timer oder aber den Watchdog (je nach AVR) zu bemhen.

Gru

Simon ...
45 - Mit was habt ihr angefangen fr die Welt der Microcontroller -- Mit was habt ihr angefangen fr die Welt der Microcontroller
Was man alles bauen kann:
So ziemlich alles was du dir vorstellen kannst, angefangen von einfachen Lichtspielereien ber komplexe Steuerungen, TV Signalen bis hin zu Handys (ja, es gab Handys in denen AVRs als CPU verwendet wurden)

Anfangen tut man meist mit einer blinkenden LED. Danach erweitert man das ganze mit einem Taster, mehrere LEDs. Jetzt kann man schon z.B. ein paar Spiele wie einen Reaktionszeittester bauen. Und den kann man entweder ganz simple oder gut mit Timer und Interrupts machen.
Dann ein billiger 2x16 Zeichen LCD an den AVR. Das sollte dich fr ein paar Wochen oder Monate beschftigen.

Ich wrde fr den Anfang ein paar mega8 kaufen (klein und billig) und vielleicht einen etwas greren mit mehr Speicher (mega32).
...
46 - 3 x PWM in Bascom -- 3 x PWM in Bascom
Hi,
der Tiny2313 hat 4 PWM Kanle

OC0A/OC0B (Timer 0) und OC1A/OC1B (Timer 1)

Ich hab auch ein kleines Testprogramm fr eine RGB LED Ansteuerung in Assembler.
Allerdings ist es mein erstes "greres" AVR Programm, also sicher noch nicht optimal programmiert, aber es luft


Code : ;**********************************************************
.include "tn2313def.inc" ; Definitionen fr ATTiny2313
;**********************************************************


ldi r16, 0x00
out DDRD, r16 ;port D ->Eingang

ldi r16, 0xFF
out PORTD, r16 ;pull-up aktivieren

ldi r16, 0xFF
out DDRB, r16 ;port B->Ausgang

ldi r16, 0x00
out PORTB, r16 ;port B ->low

ldi r16, LOW(RAMEND) ;stack
out SPL, r16


ldi r16, 0xC3
out TCCR0A, r16 ;TCCR0A initialisieren; fast pwm auf OC0A (R)

ldi r16, 0x3 ;vorteiler 1/64
out TCCR0B, r16

ldi r16, 0xF1
47 - Mein Kampf (Mit Bascom/Meine Probleme damit) -- Mein Kampf (Mit Bascom/Meine Probleme damit)
Moin,

also ich kann dir fr den Anfang empfehlen, arbeite mit dem Buch von Roland Walter und der Hilfe, es wird auch des fteren im Buch darauf hingewiesen. Falls du mit dem Englisch deine Probleme hast gibt es auch ein Buch, die komplette Hilfe von Bascom in Deutsch bersetzt. Aber ich bin auch nicht wirklicht gut in Englisch, versteh aber trotzdem ganz gut das was in der Hilfe steht, durch die Beispiele die dabei sind, oder auch durch Wrterbuch bzw. Sprach-Tools.
Link: http://bascom-avr.de/Buch.aspx?ID=2

Hier mal ein Link um in Basic einzusteigen, da bekommst du so sachen wie schleifen etc. erklrt, pass aber auf in Bascom ist es zum teil bisschen anders, schau dann im Notfall noch einmal in der Hilfe nach.
Link: http://www.tutorials.at/

Zum Thema LCD steht alles ntige auch in der Hilfe, mit kompletten Code Beispiel. Einfach kopieren, und deinem Controller anpassen und dann mit dem Code spielen, dass du das gefhl dafr bekommst.

Das kannst du auch mit anderem Code machen, z.B. vom AD-Wandler oder Timer...
48 - LED-Blinklicht mit ATS2313 mittels Timer -- LED-Blinklicht mit ATS2313 mittels Timer
Hallo @all,

dank Jornbytes Hilfe, bin ich mit meinem LED-Blink-Programm mittels Timer weitergekommen.

Da normale, auf Bremsschleifen basierende Programme, die Prozessorzeit unntig verschwenden ist es ratsamer die Blink-Routinen ber den eingebauten Timer laufen zu lassen!

Im Folgenden hier Jornbytes Erklrung:


Zitat :

Also...
In den Register/Bit Definitions for the AT90S2313 finest du am Ende folgende Zeilen:

.equ INT0addr=$001 ;External Interrupt0 Vector Address
.equ INT1addr=$002 ;External Interrupt1 Vector Address
.equ ICP1addr=$003 ;Input Capture1 Interrupt Vector Address
.equ OC1addr =$004 ;Output Compare1 Interrupt Vector Address
.equ OVF1addr=$005 ;Overflow1 Interrupt Vector Address
.equ OVF0addr=$006 ;Overflow0 Interrupt Vector Address
.equ URXCaddr=$007 ;UART Receive Complete Interrupt Vector Address
.equ UDREaddr=$008 ;UART Data Register Empty Interrupt Vector Address
.equ UTXCaddr=$009 ;UART Transmit Complete Interrupt Vector Address
.equ ACIaddr =$00a ;Analog Comparator Interrupt Vector Address

Nu musste anstelle ...
49 - Sirenensignale -- Sirenensignale
Kleiner AVR, Tne rein (in Form von verschiedenen Werten fr einen Timer als Frequenzgenerator) und dann Endstufe und Horn ran - fertig. ...
50 - DMX-Dimmer: DMX auslesen und Phasenanschnitt zu gleich? -- DMX-Dimmer: DMX auslesen und Phasenanschnitt zu gleich?

Die Timer-counter laufen von selbst, haben entweder 8 oder 16 bit und werden vom Prozessortakt ber einen programmierbaren Vorteiler oder extern bner einen Eingang getaktet. Wenn du nichts resettest berluft der Zhler einfach beim Maximalwert und beginnt wieder von 0. Resetten heisst ganz einfach das Zhlerregister mit irgendeinem Startwert berschreiben.

Damit die Timer so laufen wie man es braucht mssen sie passend initialisiert werden. Welche Register genau welche Daten bekommen sollen steht ausfhrlich im Datenblatt das gerne vollstndig gelesen werden mchte.

Interruptroutinen sind kleine Programmteile die aufgrund vordefinierter Ereignisse sofort ausgefhrt werden wenn ebendieses Ereignis auftritt. Die Ausfhrung des restlichen Programms wird dabei so lange unterbrochen. In einem AVR gibt es eine Vielzahl von Interruptquellen, wie z.B. Timer overflow(Timer berluft Maximalwert), timer compare match (timer-zhler erreicht vordefinierten Wert), Pin change interrupt(Zustand eines I/O- Pins ndert sich) und noch sehr viele mehr. Interrupts sind immer dann sehr ntzlich wenn man zu einem bestimmten Zeitpunkt oder nach einem bestimmten Ereignis etwas tun muss, aber nicht dauernd durch Statusabfragen Zeit Rechenzeit verheizen mcht...
51 - Oszilloskop aus Computermonitor -- Oszilloskop aus Computermonitor

Ich frage mich gerade wieso mchtest du dir die Arbeit machen das komplette innenleben deines Monitors umzubauen.

Ich htte da folgende idee.

Unter Link gibt es eine microcontroller kompaktible grafigkarte.

Diese knnte man doch mit einem amtmel AVR ansteuern der dann ber seine ADCs die zu messende spannung einliest die zeitbasi s liee sich einfach mit einem timer realisieren.

Gru Sven



...
52 - Mit Microkontroller Frequenz Messen -- Mit Microkontroller Frequenz Messen
Hallo... hab schon viele Foren durchgestbert und noch keine Hilfe gefunden!

Ich mchte ein Gitarrenstimmgert bauen, mit einem Microcontroller (AT89S8252).

ber ein microfon und einen OP und Schmitttrigger hab ich ein Rechtecksignal... welches ich an PortPin 3.2 lege (Timer 0 zhlt dann also wenn eine 5V anliegen (log 1)), bei negativer Flanke wird der externe Interrupt 0 ausgelst. In der Interrupt Service Routine wird dann der aktuelle Timerwert ausgelsen...

soweit bin ich in meinem Denkansatz... aber da habe ich ja erst die halbe Periode... wie bekomme ich die andere Hlfte, kann der AVR das signal invertieren?

Wre stark wenn ihr mir helft, fr jeden Vorschlag bin ich dankbar.

mfg Wellenbrecher247

...
53 - RGB-Farbregelung mit 3 LEDs -- RGB-Farbregelung mit 3 LEDs
Hallo,

ich melde mich mal wieder zurck - diesmal mit neuem Wissen

Habe mich jetzt etwas mit C von AVR (ATMega8) beschftigt.
Das Problem was ich jetzt aber immer noch habe ist die Ansteuerung der 3 LEDs. Die Regelung mit 2 LEDs ber einen Timer-Interrupt funktioniert schon ganz gut, leider laufe ich noch immer auf Eis, wenn ich die dritte irgendwie mit einbinden will.
Ich habe das ganze in Bascom programmiert:

Code :
$regfile = "m8def.dat" 'ATmega8-Deklarationen
$crystal = 3686400 'Quarz: 3,6864 MHz
$baud = 9600 '9600 Baud

On Timer0 Ontimer
On Adc Onadc

Dim Helligkeit As Byte

Ddrd = &B01100000
Ddrc = &B00000000

Tccr0 = &B00000100
Timsk.toie0 = 1

Admux = &B01100000
Adcsr = &B11101111

'----------------------------------------------------------

Helligkeit = 255 'Initial LED ganz hell
Sreg.7...
54 - DCF-77-empfang mit AT90S8515...? -- DCF-77-empfang mit AT90S8515...?
hallo zusammen

ich mchte mit einem at90s8515 und dem funkuhr-modul von conrad-elektronik als groes ziel einen hifi-timer bauen, der mir zu bestimmten zeiten gezielt einzelne hifi-komponenten einschaltet.

ich habe keine groe erfahrung mit der programmierung von mikrocontrollern und habe mich daher entschlossen, BASCOM-AVR zu benutzen.
um nun eine grundlage fr mein projekt zu haben, mchte ich einfach nur mal die dcf-77-zeit auf einem display ausgeben, was bisher leider nicht funktioniert...

das dcf-77-programmbeispiel bei den application notes auf der bascom-internet-seite ist ziemlich lieblos von einem 8051-controller portiert und funktioniert einfach nicht.
falls jemand das so anpassen knnte, da es luft, wre ich sehr dankbar. (zu finden unter http://www.mcselec.com/an_122.htm


auerdem habe ich noch folgendes (auch von einem 8051 portiertes) programm gefunden, welches ebenfalls nicht luft. da ich leider nicht mehr wei, wo ich das programm gefunden habe, poste ich einfach anschlieend den quelltext und hoffe, da mir jemand von euch weiterhelfen kann.


zu meiner ausstattung gibt's folgendes zu sagen:
...
55 - Bau eines Roboters -- Bau eines Roboters
avr studio 4 oder 3..
du kannst ein neues projekt starten, whlst deinen avr aus und schon ffnet sich das fenster wo du deinen quellcode reinschreiben kannst. auf der linken seite haste dann alles was im C verbaut ist und kannst sehen das wenn du z.b.
ldi r16, 8 (lade ins arbeitsregister nr.16 die zahl 8
naja dann siehste hinter dem arbeitsregister wie aus der zahl xx 8 wird.
(musst natrlich vorher auf den knopf build, und dann auf run klicken. und mit der taste f11 gibtse 1 tackt also er geht 1 befehl nach den andern durch)
so und wrend du build gedrckt hast wurde in deinem projektorder auch dein blabla.hex datei erstellt. diese kannste mit sp12 sofort auf den C schiessen.
kopierst also die blabla.hex in den sp12 order startest ein msdos eingabefenster und schreibst
sp12 -wpf blabla.hex
fertig.

und wenn du dich dann ein bissl auskennst sollteste nach avrmon ausschau halten. kannst mit dem sp12 programmiergert (3 widerstnde) dann in dein programm
rcall avrmon
schreiben und an der stelle wartet der c auf den pc.
kannst also nach einer messung oder sonstiges dein
diesen rcall ausfhren, dann wartet der C und wenn du dann am rechner hockst kannste dir alle register auslesen oder alle register verndern. knnte...
56 - Hilfe AVR mit I2C software AVR300 -- Hilfe AVR mit I2C software AVR300
also gut dan poste ich halt das avr300.asm

;**** A P P L I C A T I O N N O T E A V R 3 0 0 ************************
;*
;* Title : I2C (Single) Master Implementation
;* Version : 1.0 (BETA)
;* Last updated : 97.08.27
;* Target : AT90Sxxxx (any AVR device)
;*
;* Support email : avr@atmel.com
;*
;* DESCRIPTION
;* Basic routines for communicating with I2C slave devices. This
;* single master implementation is limited to one bus master on the
;* I2C bus. Most applications do not need the multimaster ability
;* the I2C bus provides. A single master implementation uses, by far,
;* less resources and is less XTAL frequency dependent.
;*
;* Some features :
;* * All interrupts are free, and can be used for other activities.
;* * Supports normal and fast mode.
;* * Supports both 7-bit and 10-bit addressing.
;* * Supports the entire AVR microcontroller family.
;*
;* Main I2C functions :
;* 'i2c_start' - Issues a start condition and sends address
;* and transfer direction.
;* 'i2c_rep_start' - Issues a repeated start condition and sends
;* address and transfer direction....
57 - PS/2-Module fr AVR? -- PS/2-Module fr AVR?

Zitat :
MicroTobi hat am 20 Aug 2004 12:38 geschrieben :
Das Modul, das ich mir kaufen werde hat 16MBx32bit, also 64Mbyte, oder?


Am besten immer ber die Bits ausrechnen:
16Mx32=512MBit
512M/8=64MByte

Im Moment bastle ich ein kleines Programm fr einen AVR, der im Prinzip das macht, was spter der FPGA machen soll:
Auf Befehl einen Wert aus dem DRAM lesen, und diesen Wert ausgeben.
Im Moment wird das ganze ber RS232 gesteuert, mit SPI geht es hoffentlich schneller als 10kB/s (theoretisch schafft der AVR (leicht bertaktet) 500kB/s.)
Im Hintergrund luft ein Timer und weckt den uC alle 30ms aus dem Schlaf, damit dieser den kompletten Speicher auffrischt. So msste man das ganze ziemlich stromsparend hinbekommen. Das ganze soll eine Low-Cost Alternative fr EEPROMs werden, um Daten mit einem Datenlogger aufzuseichnen.
Mal schauen, vielleicht bekomme ich das ja einigermaen hin, so dass sich ein Betrieb mit GoldCap oder 3V Lithiumbatterie lohnt....
58 - Verwendungen von Microkontrollern -- Verwendungen von Microkontrollern
hi,
also mit P kann man im prinzip alles machen, wo es um steuern, regeln, messen, anzeigen usw geht.

bin seit ca 6 monaten mit Atmel AVR dabei und hab schon diverses gemacht, zb.:
innenlichtdimmer frs auto mit auf und abdimmen und jede menge andere zusatzfunktionen.
temperaturanzeige frs auto ber diagnoseschnittstelle.
spannunganzeige, temperaturanzeige, schnellader mit deltapeak fr akkus, MP3 player.

wie schon erwhnt lassen sich mit einem P viele dinge vereinfachen, die sonst per hardware schwieriger bzw aufweniger wren.
es gibt aber auch flle, wo es nicht weniger aufwand ist mit einem P, sondern wo ein P vielleicht berqualifiziert ist, aber trotzdem "besser", weil sich nderungen in der software und somit funktionen einfacher verndern lassen.

den innenlichtdimmer knnte man zb einfach mit einem NE555 timer aufbauen.
ich hab mich aber fr einen kleinenatmel entschieden,
da sich damit beeinflussungen einfacher realisieren lassen, zb aufdimmen bei zndschlssel raus.
weiterhin hat der atmel schon einen PWM ausgangs, was bei einem NE555 noch zustzlich gemacht werden mste.

oder eine spannungsanzeige mit 7 segmentanzeigen. fr eine fertige zahlt man schon 20 euro bei conrad. es gibt auf fer...
59 - sinnvolles Projekt gesucht -- sinnvolles Projekt gesucht
Also, wenn du es genau wissen willst, vergiss das Teil.
Es ist langsam, teuer, unflexibel, langsam, nur grafisch zu programmieren (mal abgesehen von 250 (oder so) Assemblerbefehlen pro Programm), langsam... Ach ja, erwhnte ich schon, dass das Teil langsam ist?

Wie dir einige schon geraten haben, fang mit den AVR-Controllern an. Die sind wesentlich flexibler als die C-Control, gnstiger und vor allem schneller (grob geschtzt um den Faktor 100). Und wenn du dann was damit gemacht hast, kommen die Ideen wirklich von selbst. (Bei mir hats mit nem Timer angefangen, ging dann ber ne groe LED-Uhr (50mm hhe), ber ein grafisches Display fr Winamp ber die serielle Schnittstelle, bis hin zum Vorverstrker, schaltbaren Steckdosenleiste, Mischpult ...) ...
60 - Bascom AVR -- Bascom AVR
Ist ganz einfach:


Code :
.....
$crystal = 8000000
....



Und der Reload Wert fr Timer 1 ist dann ca.
Quarzfrequenz/Prescalerwert

Also bei 8MHz 8000000/1024 = 7812.

Das ganze ist aber noch ein bisschen was komplizierter, da der Timer ja in der Zeit nicht Zhlt, die es dauert, bis in den Interrupt gesprungen wurde, und der Timer neu geladen wurde. Dass heisst die Zeit wird ein wenig lnger sein als berechnet. Desswegen muss man sich das entweder genau berlegen oder ausprobieren, welcher Wert der richtige ist.Das Datenblatt vom AVR dabei zu konsultieren ist durchaus empfehlenswert.

Hat der Timer nicht sogar einen Reload Modus, wo er automatisch sofort neu geladen wird, sowie er abgelaufen ist?? In dem Fall whre dann natrlich eine Quarz Frequenz empfehlenswert, die durch 1024 Teilbar ist wie 8,192 MHz z.B..

[ Diese Nachricht wurde geändert von: tixiv am 28 Mr 2004  4:10 ]...

Nicht gefunden ? Eventuell gibt es im Elektroforum Transistornet.de fr Avr ätzen Timer eine Antwort
Im transitornet gefunden: Avr 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 31 Beitrge im Durchschnitt pro Tag       heute wurden bisher 2 Beitrge verfasst
x sparkkelsputz        Besucher : 146721863   Heute : 2262    Gestern : 15350    Online : 357        26.5.2019    8:08
2 Besucher in den letzten 60 Sekunden        alle 30.00 Sekunden ein neuer Besucher ---- logout ----su ---- logout ----
xcvb ycvb
0.32191991806