-
Thread
Programmierbare Relaiskarte - Konfigurationsdaten Lesen/Speichern/Übertragen
lesen und schreiben zu können. Hier mal die Prozedur zum auslesen der Portnamen: [c]void CMD_Get_PortNames() { uint8_t PortNum; uint16_t PortAddr = 0; char PortName[MAX_PORTNAME_LEN]; char buf[6]; uart_puts("GET_PORTNAMES:BEGIN;\r\n"); for (PortNum = 1; PortNum <= 8; PortNum++
); > } > else if ( !(infoOn & (1 << i)) && (infoOff & (1 << i)) ) > { > OUT_PORT &= ~(1 << a); > } > else > { > > } > a--; > } > } [/c] Ein Tipp: Für einen AVR ist das Schieben von Bits über eine variable Anzahl ein Riesenaufwand. Aus den Befehlen
-
Thread
DCF Problem mit Code
noch nicht genutzt //Schaltjahr uint8_t leapyear; void initClock(void) { //Setzen der Port-Richtungsregister DDRD &= ~(1<<PD2); //PD2 Eingang (0) //Initialisieren der Ports //PORTD |= (1<<PD2); //PD2 Pull-Up gesetzt (1) // Timer 1 konfigurieren TCCR1A = 0; TCCR1B |=(
dcf_clock.c [c] /*####################################################################################### AVR DCF77 Clock Copyright (C) 2005 Ulrich Radig #######################################################################################*/ #include "dcf_clock.h" #include <avr/io.h> #include
-
Thread
Schrittmotor mit Laptop (USB) steuern
l298 l297 Kombination ---> Schrittmotor. Das sollte dir erstmal genügend Punkt bieten um dich einlesen zu können. Die l298 l297 Kombination ist jetzt technisch gesehen nicht das neuste aber sie ist erprobt und im Internet findest du massig Beispiele dazu.
Geht zum Beispiel damit: http://stefanfrings.de/avr_io/index.html
-
Thread
Assembler-Code - STK500 - Codeverbesserungsvorschläge :)
durch diesen Artikel durch (Stichwort: Tasten Entprellen): http://www.mikrocontroller.net/articles/AVR-Tutorial:_Tasten
wird, lange nix mehr mit assembler gemacht) rcall LED3_off sbrs r16,1 rcall LED3_on in r16,PortD andi r16,0b10000000 sbrc r16,128 rcall LED4_off sbrs r16,128 rcall LED4_on in r16,PortD andi r16,0b10000001 sbrc r16,129 rcall LED34_on sbrs r16,129 rcall LED34_on rjmp Start_LED
-
Thread
Attiny45 One Shot Timer?
Timer0 Int (One Shot) TIMSK &= ~(1<<OCIE0A); //set Port to low PORTB &= ~(1<<PB2); } [/c]
Interrupt, der als Zugabe den Timerstand bereits beim Event sichert). Letzteres haben aber nicht alle AVR-Timer. CTC ist übrigens ein Spezialmodus des Compare-Interruptes. ...
-
Thread
Programm funktioniert.aber wieso?
eure Hilfe. [c]/* * Telefon.c * * Created: 05.08.2013 13:44:22 */ #include <avr/io.h> #include <stdint.h> #include <stdio.h> #include <avr/interrupt.h> #include <inttypes.h> #ifndef F_CPU #define F_CPU 14745600 #endif #define UART_BAUD_RATE 115200 #include <util/delay.h
************** //Motorstart Funktion uint8_t startmotor() { DDRA = 0xff; //Port A = Ausgang DDRC = 0xff; //Port C = Ausgang PORTD |= (1<<PD7); //Counter auf 1 setzen bereit für negative Flanke PORTB |= (1<<PB0)|(1<<PB3)|(1<<PB1)|(1<<PB2)
-
Thread
Serieller Port, Linux, C++
Konstruktor dieser klasse einen neuen (p)thread zu erstellen? Dieser könnte dann Daten nmit select() einlesen und einen Puffer befüllen, während das eigentliche Programm weiterläuft. Soviele serielle Verbindungen hat man ja normal nicht offen, sodass plötzlich Unmengen an Threads laufen...
Schnittstellen arbeiten... http://www.boost.org/doc/libs/1_54_0/doc/html/boost_asio/overview/serial_ports.html
-
Thread
Sonnenernte loggen, Photovoltaik, PV-Anlagen, Solarmodule, PV-Laderegler
verbaute µC kein ATMEL-AVR ist, da bin ich mir ziemlich sicher, da Pin1=GND & Pin20=Vcc ist. Bernd_Stein
verbaute µC kein ATMEL-AVR ist, da bin ich mir ziemlich sicher, da Pin1=GND & Pin20=Vcc ist. Dummerweise ecken die beiden MOSFETs an den anderen beiden an, so das alle keinen vernünftigen Kontakt zum Blech haben. Ich habe
-
Thread
Byte Wert suchen und Folgebyte speichern
jd/plaene/SUSI_310.zip Hier ist der Sourcecode denn ich bis jetzt erstellt habe. [c]#include <avr/io.h> #include <avr/interrupt.h> #define F_CPU 8000000UL #define no_sync 0 #define in_sync 1 volatile uint8_t state = no_sync; volatile uint8_t AddrByte = 0; volatile uint8_t DataByte1
drin und ich kann den Fehler einfach nicht entdecken. Ich bitte um Unterstützung. [c]#include <avr/io.h> #include <avr/interrupt.h> #define F_CPU 3686400UL #define FAIL 0x01 #define SUCCESS 0x02 uint8_t TransmitState = 0x00; uint8_t addr, value1, value2; volatile uint8_t susi_F0F4
-
Thread
Verifying Flash Failed
ATmega8 mit meinem Programm beschreiben, dazu benutze ich das MySmartUSB light Programmiergerät und AVR Studio6. Mit dem Controller kann ich kommunizieren (Device signature einlesen usw.) nur wenn ich ihn beschreiben will, bekomme ich immer folgende Meldung: Verifying Flash...Failed! address=0x0000
Unbekannt schrieb im Beitrag #3247537: > achja... ganz vergessen. ich kann alles einlesen bis auf die > Versorgungsspannung! > hab den Mikrocontroller per USB angeschlossen! Meintst du damit das du einen (2`ten?) usb port belegt hast und von dort die spannung zum betreiben des µC
-
Artikel
Pony-Prog Tutorial
www.embedit.de Platine zum Selbstbestücken bei: oder selbst bauen nach: www.lancos.com/prog.html Abschnitt "AVR ISP (STK200/300) parallel port interface" AVR-Controller-Board mit ISP-Anschluss (siehe weiter unten) Um schon in der Anfangsphase Probleme zu vermeiden, sollte der Controller beim Einsatz eines STK200
des EEPROM wird bei der Programmierung gelöscht, d.h. alle Speicherstellen des EEPROM-Speichers im AVR werden auf $FF gesetzt. Um den Zyklus Programmieren-Testen-Debuggen zu verkürzen gibt es mit ^P (Strg+P) die Möglichkeit, die Schritte "Hex-Datei neu einlesen", "Controller löschen", "Controller brennen
-
Thread
SPI Master-Slave kommunikation
--------------------------------------------- */ Conf: ldi accu1, 0b00000010 sts PORTE_DIR, accu1 // SPI Port E MISO =out ldi accu1, 0b00001100 sts PORTB_DIR, accu1 // PortB (Pin2+3) DAC richtung OUT ldi accu2, 0b00000001 // 32 MHz intern
--------------------------------------------------- */ /*------------------------- rückgabe einlesen --------------------------------*/ /*--------------------------------------------------------------------------------- */ SPI_EMPFANGEN: in temp, SPDR ; einlesen out PORTB, temp
-
Thread
Keypad - Interrupt
Interrupt Ports active */ PORTE = ( (1<<PE7) | (1<<PE6) | (1<<PE5) | (1<<PE4)); /* Pullup resistance output Ports inactive */ PORTD = ( (0<<PD7) | (0<<PD4) ); PORTG = ( (0<<PG3) | (0<<PG0) );
[c] #include <avr\io.h> #define NOP(); asm volatile("nop"::); #define KEY_PIN PINB #define KEY_PORT PORTB #define KEY_DDR DDRB // Pin 0..3 = column 1..4 // Pin 4..6 = row 1..3
-
Thread
ATtiny13 lässt sich nicht programmieren - Brauche Ideen zum debuggen
User configuration file does not exist or is not a regular file, skipping Using Port : unknown Using Programmer : usbasp Setting bit clk period : 300.0 Setting isp clock delay : 10 AVR Part
User configuration file does not exist or is not a regular file, skipping Using Port : unknown Using Programmer : usbasp AVR Part : ATtiny13 Chip Erase delay : 4000 us PAGEL
-
Thread
Si4735 RDS Radio UKW LW MW KW AM FM - TA TP AF GT TMC CT RT Pi PS ATmega8 Assembler
* Created: 23.06.2014 15:50:10 * Author: Oneway */ #define F_CPU 8000000UL #include <avr/io.h> #include <util/delay.h> #include "i2c.c" #include "lcd.c" #include "lcd.h" #define ENDLESS 1 int main(void) { lcd_init(LCD_DISP_ON); //LCD initialisieren... lcd_clrscr();
Display wird sichelich nur im handelsüblichen 4-Bit-Modus betrieben, >auch wenn die Kabel am SPI-Port angeschlossen sind. Okay, das war mir bisjetzt nicht klar. Werde versuchen das Display über eine alternative mögliche Busform mit dem Microkontroller zu verbinden. Bernhard S. schrieb: >Ich
-
Thread
Portzustände definieren
auch keine vorübergehend verbotenen Kombinationen am Port wie bei mehreren Schreibvorgängen. Ein übliches Verfahren: Port einlesen oder den Zustand aus einem Register holen. Per AND die Bits löschen, die Null werden sollen. Per OR die gewünschten Bits
Ok, da ich jetzt komplett auf einen anderen AVR umsteigen mußte. ATTiny44. habe jetzt leider das Problem das ich LED's und Steuer-Ausgänge am gleiche Port habe. PA0-PA3 sind LED's PA4-PA5 sind Ausgänge um etwas anzusteuern.
-
Thread
Zeit / wegmessung in Bascom verwirklichen
Interessant wäre noch das Ausgangssignal der Hallsensoren und welcher AVR es werden soll.
kurz drücken, dann wird die Zeit automatisch genommen. Anschließend der Wert gespeichert. Die Ports musst du dir wieder anpassen. Die Konstante Ohnepullups muss bei dir auf 0. Die LED signalisiert den Programmiermodus. Hast Du keine, dann das auskommentieren.
-
Thread
AD Wandlung mit MEGA 16
Hallo, ich möchte den Pegel an PA0 einlesen und dann an PORT C ansehen. An PA0 ist ein 10 Kiloohm Poti angeschlossen. Frage: Ist da irgendetwas falsch in meinem Programm? Ich kann den Fehler nicht finden. Die LEDs an PORT C bleiben
Andere Programme laufen auf dem Board. [c]/* AD Wandler mit dem MEGA 16, PA0 ist Eingang, Ausgang PORT C */ /* An Port A0 ist ein 10 K Poti angeschlossen*/ /* Takt 12 MHZ, für AD geteilt durch 68, also 185 kHZ */ /* interne Referenz mit 2,56 V */ #define F_CPU 1200000 #include <avr/
-
Thread
Bit in Byte mit Schleife schieben.
Schieberegistern // nacheinander über den selben Pin eingelesen werden (?) // Ansonsten der Routine noch den Port und die Pinnummer der Daten // (+evtl Clock) übergeben { uint16_t b = 0; for (uint8_t i = 0; i < 16; i++) { - hier Takt ausgeben b = b << 1; if (PORT_DATA & (
in ein Byte. Das kann man mehrfach wiederholden und hat ein Array. Siehe [[Bitmanipulation]] und [[AVR-Tutorial: Schieberegister]].
-
Thread
Interrupt Atxmega 32 A4U
zaehler= r19 .def temp2= r20 ldi temp2, 0xFF sts PORTD_DIRSET, temp2 ;PortC Interrupt config ldi temp, 0x00 sts PORTC_DIRSET, temp ;PortC als Eingang ldi temp, 0b00111000 sts PORTC_PIN6CTRL, temp ;PORTC PIN6 Pull-Up und Interrupt bei fallender
lediglich die Einstellung Steigendene Flanke ändern und die Pullup-Konfiguration weglassen. Sowie den PORT bzw. PIN auf deine verwendeten abändern.... Vielleicht kannst du ja in ein paar Worten auch mal noch erklären, was du mit deinem Programm genau machen möchtest... ( So in der Art: Einlesen eines
-
Thread
Atmega16 Pins funktionieren nicht
JTAGEN in den Fuses abschalten! Das JTAG der Prozessoren ist aktiv und hat die Pins am Port C unter der Fuchtel.
http://www.mikrocontroller.net/articles/AVR_Fuses#Kompatibilit.C3.A4tsfuses_und_manchmal_l.C3.A4stige_Defaults
-
Thread
Impulswahl Wahlimpulse detektieren
Wahlimpulse. Den ADC muß du doch genauso multiplexen, der AVR hat doch auch davon nur einen. Den ADC-Muxer kannst du auch für den Analogkomparator verwenden. Siehe Erläuterungen zum ACME-Bit in ADCSRB.
Wahlimpulse. > > Den ADC muß du doch genauso multiplexen, der AVR hat doch auch davon nur > einen. > > Den ADC-Muxer kannst du auch für den Analogkomparator verwenden. Siehe > Erläuterungen zum ACME-Bit in ADCSRB. Ich weiss, aber der Charme am Analog-Komparator
-
Artikel
USB IO Expander
über Interrupts keinen Sinn macht (der AVR würde in der Zwischenzeit sowieso nur warten). Relais Modul. Dieses sehr simple Modul dient einzig dazu, die 4 Relais anzusteuern. Da der AVR die Relais direkt über Treibertransistoren ansteuert, beschränkt sich die Funktionalität hier auf das setzten bzw löschen von Port-Pins. SPI Modul. Das SPI-Modul kapselt den Zugriff auf die AVR-interne SPI Schnittstelle. Es erlaubt das senden von Daten sowie die Konfiguration der Schnittstelle. Auch hier blockieren die Sende-Routinen
-
Thread
Neue Cortex-M0+-Familie von Atmel
Offensichtlich lässt sich der Cortex lediglich über den Preis den Kunden schmackhaft machen, wäre der Preis dem AVR gleich, würden wohl mehrere beim AVR bleiben. Offensichtlich gibt es doch nicht genug Vorteile um den Cortex gut verkaufen zu können. - Warum verkauft ein Produzent A z.b. einen AVR für 2.5Euro, wobei
-Bit Nur weil der Kern 8-Bit ist, heisst es nicht, dass da nur 8-Bit Peripherals verbaut; siehe AVR.
-
Thread
Einsteiger -> Ziel : Stoppuhr
Aber nicht abgucken ;) http://extremeelectronics.co.in/avr-projects/avr-project-digital-stop-watch-with-atmega8/
eine Stoppuhr ungeeignet. Dinge die man schon können muss, wenn man sowas angeht * allgemeine Port Ein/Ausgabeoperationen * Tasten einlesen * Tasten entprellen * Umgang mit Timern * CTC-Modus des Timers * Multiplexing * Verständnis, wie man mit einer ISR eine Uhr baut * Einstellen des CTC-Modus
-
Thread
Wie viele Taktzyklen benötigt ein Interruptaufruf beim AVR INT0 (Assembler)
so eingestellt, dass er bei einer fallenden Flanke auslöst. Der Interrupt soll dann einen anderen PORT-Pin einlesen. Wichtig ist dabei allerdings eine möglichst geringe Verzögerung. Was mich daher interessiert ist, wann genau der erste Befehl des Interrupts nach der fallenden Flanke am INT0-Pin ausgeführt
eingestellt, dass er bei einer fallenden > Flanke auslöst. Der Interrupt soll dann einen anderen PORT-Pin einlesen. Zusätzlich ein D-Flipflop mit der fallenden Flanke triggern und das Signal auf den D-Eingang. Dann kannst du, solange kein weiterer Trigger gekommen ist, am Ausgang des Flipflops den
-
Thread
USBprog 4.0 vs Atmel JTAG ICE
dir auch empfehlen, zunächst mal mit dem Mega328 anzufangen. Der besitzt eine andere Architektur (AVR) als dein AT91SAM7A3 (ARM) und ist wesentlich einfacher zu programmieren. Zum Programmieren der AVR's: Schau dir mal Debug Wire an. Viele Grüße Michael
Das JTAGice3 kann nur AVR und AVR32 programmieren, ist also für ARM nicht geeignet. Der USBPROG soll wohl auch ARM programmieren können, aber empfehlen tu ich den nicht. Für ARM (und nur dafür, was anderes kann der nicht)
-
Thread
Hilfe bei AVR!
Hallo zusammen, ich brauch unbedingt eure Hilfe bei C++ und AVR. Bitte um schnellste Rückmeldung. Danke Fp
Um wieviele Stellen musst du daher in welcher Richtung verschieben? Du weißt nicht wie man einen Port einliest bzw. auf einen Port ausgibt? Ich kann das kaum glauben.
-
Thread
AD-Wandler und LDR Sensoren
Ausgabeportbits werden auf 0 oder 1 geschaltet, indem man das PORT Register beschreibt und nicht das DDR Register. DDR ist dafür zuständig die Richtung (Eingang/Ausgang) festzulegen! Für ADC-Routinen sieh dir bitte das [[AVR-GCC-Tutorial]] an. Da gibt es mehr oder
das PORT-Bit fest auf 0 und schaltet mit DDR um.
-
Thread
ADC - Genauigkeit (Abstufung)
Mittelwerte. Die Spannung wird an einem RC Gleid 50 k und 100 uF abgegriffen (Steckbrett, 5 cm Draht zum Port) und der Analogeingang hat zu den PWM Ausgängen min. 2 PINs frei. Gibt es da Abhilfe?
Steigung" der Kurve bestimmt werden. //einen Mittelwert an einer x beliebigen Stelle der Ladekurve einlesen. //den Timer starten //weitere Mittelwerte einlesen, BIS die beiden Mittelwerte eine festgelegte Differenz ergeben, z.B 5. //Timer stoppen und Steigung berechnen. 2. wie Generell funktioniert
-
Thread
-
Thread
ATMEGA328-PU
Hier kannst du auch schauen: http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment Da sind auch einige Sachen geklärt.
Ich seh keinen ISP-Stecker. http://www.mikrocontroller.net/articles/AVR_In_System_Programmer#ISP
-
Thread
8bit-Computing mit FPGA
P.S. "8Bit Computing mit FPGA" ist ein Krampf ohnegleichen. Nimm einen AVR oder PIC und gut ist.
Steve schrieb im Beitrag #5183231: > Zum Lernen nimmt man einen kleinen AVR. Es hängt davon ab, /was/ Du lernen willst. Wenn Du Dir selbst Deine Traum-CPU bauen willst inkl. Entwicklungsumgebung, würdest Du sicher nicht AVR nehmen, sondern prinzipbedingt etwas entwickeln
-
Thread
Neue Reflow Steuerung zum Stöbern Meckern oder Bauen
Hallo Sarah, also der Stand ist zur Zeit folgender: Virtueller COM-Port mit USB funktioniert. Temperaturmessen über SPI auch. Die Pulspaketsteuerung funktioniert. "Normaler" UART geht auch schon. Jetzt basteln wir gerade alles zusammen. Also der Parser und die MAIN
Aber welcher Treiber wird denn jetzt unter Windows verwendet? Wird letztlich über einen Windows COM-Port kommuniziert, oder muss ich den Windows-Treiber selber ansprechen, was dann wieder aufwändiger wäre?
-
Thread
ATtiny13: UART Problem mit External-Interrupt
habe ich etwas übersehen, missverstanden oder einen Fehler im Code. main.c [c] #include <avr/io.h #include <avr/iotn13.h> #include <avr/interrupt.h> #include "uart.h" unsigned char c; ISR( PCINT0_vect ); // Interrupt Service Routine External Interrupt Request
// Bit is 1, Clear Bit (Set PortPIN LOW) } else { PORTB |= (1<<PB1); // Bit is 0, Set Bit (Set PortPIN HIGH) } _delay_us( 104 ); } PORTB &= ~(1<<PB1); // STOP Bit (Set PortPIN LOW
-
Thread
AVR Studio- Problem mit STK500v2
auslesen und löschen! wenn AVRDUDE dann mein, vorher kompiliertes hex file einlesen will geht das nicht! Hier erst mal die Consolenausgabe von AVR Studio: avrdude.exe: AVR device initialized and ready to accept instructions Reading | #####################################
Ports.)
-
Thread
Wie kann ich Daten von einen Triple Axis Accelerometer an den PC per USB senden?
die Erklärung. Was ich brauch ist dann wohl das Gyroskop. Ich möchte auch gerne über den USB Port arbeiten, allerdings kann ich da auch gerne mit einer serielle Schnittstelle anfangen. Auch danke für diesen Tipp.
Projekte nachprogrammieren zu können, d.h. kostet was. > > Andere können dir sicherlich für ARM. AVR, ... Empfehlungen geben. Ok danke, dann würde ich wahrscheinlich eines der beiden nehmen. Wahrscheinlich 32-Bit PIC32 Was würde ich denn noch alles brauchen? Ach ja Löten kann ich, allerdings
-
Thread
atmega16A Programm richtig laden
korrekt angeschlossen habe. Vebindung um Controller steht. Nun habe ich auf meinem Rechner das AVR Studio 6.1 drauf und das Programm in einem neuen C Projekt eingefügt, compillt und auf den Chip geflasht. Die Bytes/Fuses habe ich nicht angerührt, da ich ein totaler Anfänger bin. Laut AVR Studio
Port nicht so, wie sie sein sollten. Fuses einlesen JTAGEN abschalten Fuses schreiben
-
Thread
Simple software UART, sieht jemand den Fehler?
behilflich zu sein. Deshalb habe ich das Modul auf UART umgestellt. Dieses hängt nun am hardware SPI Port des Atmega324p Deshalb dachte ich mir, ich bastle mir schnell eine soft-uart. Leider klappt diese noch nicht so wie sie sollte. Vielleicht hat mir ja noch jemand tipps. Kurz zur konfiguration
Struktogram zu machen, sollte dies zu unübersichtlich sein. Hier nun mein code: [c] #include <avr/io.h> #include <avr/interrupt.h> #include "soft_uart.h" #include "ports.h" #define RX_PIN ( PINB & (1<<PINB6) ) #define BAUDRATE_0 4800 #define TIMER_PRESC 256 #define CPU_CLOCK 10000000
-
Thread
LCD Mit pc verbinden
LPT-Druckerport >ankabelt und dann direkt vom PC aus ansteuert. Wozu brauchst du da dann >einen AVR? Richtig, es geht zum größten Teil über LPT. >Oder gibt es da mitlerweile auch andere Anschlussmöglichkeiten? COM Port kann man auch machen wenn man ein passendes Display hat. Das ist dann
funktioniert? Die serielle Schnitstelle im PC ist aber nur eine virtuelle, die im PC auf den USB Port geht, der dann auf dein AVR Board geht, wo wieder ein IC sitzt, der es wieder in ein serielles Signal umwandelt das du dann mit deinem uC einlesen kannst. Hast du die serielle Schnittstelle schon im
-
Thread
Einstieg ARM
stehen. Problemloser Hardware-Zugriff: Fehlanzeige. Anbei der Versuch eines Programmierers, einen UART-Port zu aktivieren... Also diese teils abartig aufgeblasene Komplexität sollte der angehende ARM-Programmierer kennen, finde ich. Im Zweifelsfall also besser bei AVR & Co. bleiben, das lässt noch Zeit für
BesserAVR schrieb im Beitrag #3206571: > Anbei der > Versuch eines Programmierers, einen UART-Port zu aktivieren... Naja, das was du da gepostet hast, hat mit Quellcode nix zu tun. Daß so ein Zeugs jedermann
-
Thread
Projekt : viele kleine zu einem groß Projekt, brauche Infos
Ziel kommst, auch wenn Dein Code nicht optimal sein sollte. Wenn Du meinst, mit irgendeinem ARM oder AVR32 besser zurecht zu kommen, dann bitte. Da kann ich Dir dann aber keine Hilfe mehr geben. Bei AVR und USB-Host wäre der AT90USB1287 (im Prinzip ein Mega128 mit USB) Dein Weg. Ob das dann am Schluss
über I2C oder einen vierten SPI. Nichts, was furchtbar viel Rechenleistung braucht. Ein PIC32 oder AVR32 oder Cortex M3/M4 sollte das problemlos schaffen. fchk
-
Thread
Porterweiterung Atmega8 mit 74HC164
ldi temp1, (1<<clk) | (1<<pl) out SCHIEBE_DDR, temp1 sbi schiebe_port, clk ; Takt im Ruhezustand immer auf 1 ; komische Schaltung im 74xx165 ; Zwei Bytes einlesen ldi ZL,low(Daten) ldi ZH,high(Daten) ldi
SBIT(port,pin) ((*(volatile struct bits*)&port).b##pin) #define SPI_CLK SBIT( PORTB, 0 ) // clock #define SPI_CLK_DDR SBIT( DDRB, 0 ) #define SPI_MOSI SBIT( PORTB, 1 ) // data out #define SPI_MOSI_DDR
-
Thread
AVR Dragon - ISP geht nicht mehr?!
Plan: http://pofo.de/P8000/notes/plaene/eigene/P8000_WDC_Emulator/P8000_WDC_Emulator.pdf Das einlesen der Spannung meiner Schaltung durch den AVR-Dragon klappt. Das setzen der ISP-Frequenz klappt auch problemlos. (die 2 LEDs des Dragon blinken dann gruen). Habe sie mal auf das niedrigste was ging
habe auch schonmal die Widerstandsnetzwerke abgehangen von meiner Schaltung - ohne Erfolg. Kaputter AVR Dragon?
-
Thread
Motoransteuerung mit PWM
habe ich kein Oszi da um den PWM Ausgang zu testen. Mein Code sieht wie folgt aus: #include <avr/io.h> #include <avr/interrupt.h> #include "lcd_ks0066_4bit_io.h" #include "Define_Inputs.h" #include "Define_Outputs.h" #include <stdlib.h> #include <inttypes.h> void initial(void) {
// PING2 } // Motor links rechts lauf if (STATE_DI4_INPUT_X6) { PORTE &= ~(1<<OUT_H_Bridge_Right_A_PINE6); PORTE |= 0x80; //PINE7 } else { PORTE &= ~(1<<OUT_H_Bridge_Left_B_PINE7); PORTE |= 0x40; //PINE6 }
-
Thread
DOGM128 und Atmega16 via STK500
eigentlich später, aber evtl frage ich jetzt. Das Testprogram ist eigentlich schon da, mit LunaAVR kommt eines genau für den LCD, allerdings gefällt mir eine Stelle da nicht so. Da werden die Pins des µC so verwendet bzw. ich verstehe das Kommentar so, dass die Pins des Port C auf die angegebene Pins des LCD gehen (Angabe ist jeweils Text hinter dem Hochkomma): [code] #define dogmMosiPin as PortC.0 ' in dogm datasheet named 'SI' #define dogmSckPin as PortC.1 ' in dogm datasheet named 'SCL' #define dogmA0Pin as PortC.2 ' in dogm datasheet named 'A0' #define dogmSsPin as PortC.3 ' in
-
Thread
AVR und Lichtschranke
Hallo, ich bin hier bereits ein langer stiller Leser in eurem Forum. Nun habe ich auch ein Problem. Ich habe eine Lichtschranke. Mithilfe eines ATtiny 2313 möchte ich ein Relais eine bestimmte Zeit schalten, wenn ein Objekt die Lichtschranke unterbricht. Da ich (Schüler) allerdings noch Anfänger in der Bascom Programmierung bin, habe ich noch ein paar Fragen bei der Gestaltung dieses kleinen Projektes. Ich möchte, egal wie lange die Lichtschranke unterbrochen ist, das Relais bzw. den Port nur eine bestimmte Zeit (ca. 10s) schalten. Ich habe leider noch keinen Ansatz gefunden, wie ich diese