Hi,
Wäre gut, wenn du deinen Takt am Controler posten würdest, sonst kann man des nciht berechnen ^^
mfg Javik
Hallo
Ich bin gerade von PIC auf ATMEL umgestiegen.
Ich habe da ne Schaltung die US 40Khz empf. kann.
Ich brauche einen Code in GCC zur Erzeugung des 40kHz
Signales des Senders an einem Port von meinem AT90S8515
Also nur ein Transistor und die Sendekapsel 400TX an einem Port meiner wahl.
ich habe das irgendwo gelesen, nur weis ich nicht mehr wo.
kann mir jemand bitte weiter helfen und einen CODE oder einen Link Posten ?
Danke
Andy
Hi,
Wäre gut, wenn du deinen Takt am Controler posten würdest, sonst kann man des nciht berechnen ^^
mfg Javik
Danke für den Hinweis (sorry)
AT90S8515 mit 8MHz
UST-400 Kapseln von Reichelt wo Ich immer noch nicht weis
wo da + und - ist. IM Datenblatt steht nichts dazu.
auf meiner HP habe ich ein Bild davon.
http://www.brichnijak.de/Holger/hinten.JPG
Frank hat vor kurzem ein kleines Tool geschrieben welches die Timereinstellungen für AVR's berechnet. Es produziert zwar Bascom-Code aber die Einstellungen sollten die Gleichen sein....
Das Programm gibt's im Downloadbereich...
Sonic
Bild hier
If the world does not fit your needs, just compile a new one...
Bezüglich der Spannung sind die Anschlüsse symmerisch. Theoretisch optimal mit Wechselspannung anzusteuern für praktische Fälle mit beliebigem Gleichtaktanteil zulässig.Reichelt wo Ich immer noch nicht weis
wo da + und - ist. IM Datenblatt steht nichts dazu.
Einer der Anschlüsse ist mit dem Gehäuse verbunden. Bei asymmetrischer Ansteuerung liegt er vorzugsweise auf festem Potential.
Manfred
Danke für Eure Hilfe
Ich werde mal so etwas in der Art versuchen
Code:#include <avr/io.h> #include <stdlib.h> #include<avr/interrupt.h> #include<avr/signal.h> //Definition einiger Datentypen, reine Geschmacksache #define uchar unsigned char // 1 Byte ohne Vorzeichen 0 bis 255 erlaubt #define uint unsigned int // 2 Byte ohne Vorzeichen 0 bis 65535 erlaubt //Definition der Konstanten #define reload 100 // Reload Wert für Timer0 256 - 100 = 156 // Defintion der globalen Variablen volatile uchar count_10ms; // Zähler für die 10ms INT // Timer0 Overflow Routinen, Aufruf alle 10 ms SIGNAL (SIG_OVERFLOW0 ) { TCNT0 = reload; //Timer0 neu einstellen auf 100 count_10ms++; //Zähler um 1 erhöhen if(count_10ms >= 100) //Abfrage 1 Sekunde vorbei, 100 * 10 ms { //dann LED umschalten if(bit_is_set(PORTB,1)) //PIN gesetzt ??? PORTB = 0x00; else PORTB = 0x01; count_10ms = 0; //Zähler löschen } } //Einstellen der Hardware des AVR +++++++++++++++++++++++++++++++++++++++++++++ void init(void) { //Port einstellen DDRB = 0x01; //PortB.1 auf Ausgang //TimerO einstellen TIMSK = _BV(TOIE0); // Timer0 Overflow INT erlauben TCNT0 = reload; // TIMER0 vorladen mit 100 TCCR0 = _BV(CS02) ; // Vorteiler auf 256, ab hier läuft der TIMER0 // Global Interrupts freigeben sei(); } //Hauptprogramm, hier startet der uC ++++++++++++++++++++++++++++++++++++++++++ void main (void) { init(); // Hardware einstellen gehen for(;;) // Endlosschleife { } }
http://mc-project.de/Pages/ultrasonic.html
Hier ist das ganze in avrgcc demonstriert.
Suuper genau das habe Ich gesucht !!! DANKE
Lesezeichen