AVR kezdőnek
Re: AVR kezdőnek
A chipek atmel oldali adatlapjaz nezd meg vagy a bascom pdf allomanyat.
Ebben a 3. oldalon van a chip rajza....
Ebben a 3. oldalon van a chip rajza....
-
- Bitmanipulátor
- Hozzászólások: 128
- Csatlakozott: 2015. december 8. kedd, 19:52
Re: AVR kezdőnek
Szia!
Pont azzal kezdtem, hogy elővettem a chip leírást. A 3. oldalon található rajzon nem tudom egyértelműen beazonosítani a kivezetéseket. Azok, melyeknek van speciális funkciója, és ez szerepel is a kivezetésleírásában, az mind egyértelmű. Azonban a többi kivezetés már nem. A BASCOM leírásban eleve csak két portról találtam leírást: POTRB, PORTD. Mi van azokkal a kivezetésekkel, melyek nem a b és d porthoz tartoznak? Azokra hogyan hivatkozhatok a programban?
Köszönettel
Bagi
Pont azzal kezdtem, hogy elővettem a chip leírást. A 3. oldalon található rajzon nem tudom egyértelműen beazonosítani a kivezetéseket. Azok, melyeknek van speciális funkciója, és ez szerepel is a kivezetésleírásában, az mind egyértelmű. Azonban a többi kivezetés már nem. A BASCOM leírásban eleve csak két portról találtam leírást: POTRB, PORTD. Mi van azokkal a kivezetésekkel, melyek nem a b és d porthoz tartoznak? Azokra hogyan hivatkozhatok a programban?
Köszönettel
Bagi
Re: AVR kezdőnek
4. oldal lábrajz.
PD3 = PortD.3 Bascom alatt a chip ikonnal nyiss chiprajzot és menj rá a lábára (bal felső (1-es láb) amin az egér állt).
Melyik kivezetést nem tudod kezelni?
PD3 = PortD.3 Bascom alatt a chip ikonnal nyiss chiprajzot és menj rá a lábára (bal felső (1-es láb) amin az egér állt).
Melyik kivezetést nem tudod kezelni?
Nincs meg a kellő jogosultságod a hozzászóláshoz csatolt állományok megtekintéséhez.
Re: AVR kezdőnek
atmega328p datasheet.pdf
3. oldal dip18 pinout
a chiphez legközelebbi jelzés PBxx PCxx PDxx vagyis: Port B, Port C, Port D
4-5. oldal lábak részletesen
melyik láb milyen funkciókat lát el
6.oldal blokkdiagram
mi hova csatlakozik logikailag
mi a kérdésed? szerintem minden itt van
3. oldal dip18 pinout
a chiphez legközelebbi jelzés PBxx PCxx PDxx vagyis: Port B, Port C, Port D
4-5. oldal lábak részletesen
melyik láb milyen funkciókat lát el
6.oldal blokkdiagram
mi hova csatlakozik logikailag
mi a kérdésed? szerintem minden itt van
-
- Bitmanipulátor
- Hozzászólások: 128
- Csatlakozott: 2015. december 8. kedd, 19:52
Re: AVR kezdőnek
Szia!
A BASCOM leírásban a következő táblázatot találtam:
Port B Pins Alternate Functions
PortPin
Alternate Functions
PORTB.0
T0
(Timer/Counter 0 external counter input)
PORTB.1
T1
(Timer/Counter 1 external counter input)
PORTB.2
AIN0
(Analog comparator positive input)
PORTB.3
AIN1
(Analog comparator negative input)
PORTB.4
SS
(SPI Slave Select input)
PORTB.5
MOSI
(SPI Bus Master Output/Slave Input)
PORTB.6
MISO
(SPI Bus Master Input/Slave Output)
PORTB.7
SCK
(SPI Bus Serial Clock)
A BASCOM leírásban a következő táblázatot találtam:
Port B Pins Alternate Functions
PortPin
Alternate Functions
PORTB.0
T0
(Timer/Counter 0 external counter input)
PORTB.1
T1
(Timer/Counter 1 external counter input)
PORTB.2
AIN0
(Analog comparator positive input)
PORTB.3
AIN1
(Analog comparator negative input)
PORTB.4
SS
(SPI Slave Select input)
PORTB.5
MOSI
(SPI Bus Master Output/Slave Input)
PORTB.6
MISO
(SPI Bus Master Input/Slave Output)
PORTB.7
SCK
(SPI Bus Serial Clock)
-
- Bitmanipulátor
- Hozzászólások: 128
- Csatlakozott: 2015. december 8. kedd, 19:52
Re: AVR kezdőnek
Szia!
A BASCOM leírásban a következő táblázatot találtam:
Port B Pins Alternate Functions
PortPin
Alternate Functions
PORTB.0
T0
(Timer/Counter 0 external counter input)
PORTB.1
T1
(Timer/Counter 1 external counter input)
PORTB.2
AIN0
(Analog comparator positive input)
PORTB.3
AIN1
(Analog comparator negative input)
PORTB.4
SS
(SPI Slave Select input)
PORTB.5
MOSI
(SPI Bus Master Output/Slave Input)
PORTB.6
MISO
(SPI Bus Master Input/Slave Output)
PORTB.7
SCK
(SPI Bus Serial Clock)
A BASCOM leírásban a következő táblázatot találtam:
Port B Pins Alternate Functions
PortPin
Alternate Functions
PORTB.0
T0
(Timer/Counter 0 external counter input)
PORTB.1
T1
(Timer/Counter 1 external counter input)
PORTB.2
AIN0
(Analog comparator positive input)
PORTB.3
AIN1
(Analog comparator negative input)
PORTB.4
SS
(SPI Slave Select input)
PORTB.5
MOSI
(SPI Bus Master Output/Slave Input)
PORTB.6
MISO
(SPI Bus Master Input/Slave Output)
PORTB.7
SCK
(SPI Bus Serial Clock)
-
- Bitmanipulátor
- Hozzászólások: 128
- Csatlakozott: 2015. december 8. kedd, 19:52
Re: AVR kezdőnek
Bocsánat, de írás és másolgatás közben megnyomtam valamit, így elment egy félkész hozzászólás! Itt a teljes hozzászólás, amit küldeni szerettem volna:
A BASCOM leírásban a következő táblázatot találtam:
Port B Pins Alternate Functions
Port Pin Alternate Functions
PORTB.0 T0 (Timer/Counter 0 external counter input)
PORTB.1 T1 (Timer/Counter 1 external counter input)
PORTB.2 AIN0 (Analog comparator positive input)
PORTB.3 AIN1 (Analog comparator negative input)
PORTB.4 SS (SPI Slave Select input)
PORTB.5 MOSI (SPI Bus Master Output/Slave Input)
PORTB.6 MISO (SPI Bus Master Input/Slave Output)
PORTB.7 SCK (SPI Bus Serial Clock)
Ugyanakkor az ATmega 328 leírásban a lábkiosztásban pl. az MOSI feliratú láb teljes jelölése a köbvetkező:
PB3 (MOSI/OC2A/PCINT3)
Azt hiszem, hogy valamit nagyon benézek, mert az első táblázatban a MOSI kivezetés a Portb6, miközben a lábfelirat rövidítása alapján PB3 vagyis portb3 láb kellen, hogy legyen. Ezt az ellentmondást kellene feloldani valahogyan! Mit nézek el?
Köszönettel
Bagi Zoltán
A BASCOM leírásban a következő táblázatot találtam:
Port B Pins Alternate Functions
Port Pin Alternate Functions
PORTB.0 T0 (Timer/Counter 0 external counter input)
PORTB.1 T1 (Timer/Counter 1 external counter input)
PORTB.2 AIN0 (Analog comparator positive input)
PORTB.3 AIN1 (Analog comparator negative input)
PORTB.4 SS (SPI Slave Select input)
PORTB.5 MOSI (SPI Bus Master Output/Slave Input)
PORTB.6 MISO (SPI Bus Master Input/Slave Output)
PORTB.7 SCK (SPI Bus Serial Clock)
Ugyanakkor az ATmega 328 leírásban a lábkiosztásban pl. az MOSI feliratú láb teljes jelölése a köbvetkező:
PB3 (MOSI/OC2A/PCINT3)
Azt hiszem, hogy valamit nagyon benézek, mert az első táblázatban a MOSI kivezetés a Portb6, miközben a lábfelirat rövidítása alapján PB3 vagyis portb3 láb kellen, hogy legyen. Ezt az ellentmondást kellene feloldani valahogyan! Mit nézek el?
Köszönettel
Bagi Zoltán
Re: AVR kezdőnek
Ok. Küldj képernyőfotót. Nálad nem a Mega328 chip van kiválasztva...
Hanem valamelyik Tinychip (Tiny24? vagy Tiny26? Tiny2313?)
Hanem valamelyik Tinychip (Tiny24? vagy Tiny26? Tiny2313?)
Re: AVR kezdőnek
Most már megkérdezek valaki hozzáértőt:
Adott egy kis ASM betéttel működő program, aminél az ASM rutinban a szoros időzítések miatt nem jöhet megszakítás, máskor nincs baj. Már lecsupaszítottam mindent:
Az ASM részben tiltom (tiltanám) az INT-eket, hogy ne köszönjenek bele, az INT1 nem csinál semmit. Ennek ellenére beleköszön a rutinba.
Szimulátorban nézve a SEND alatt bejött INT1 utána nem csinál semmit, nem ugrik rá, tehát ott is van valami gond.
A SEND évek óta jól működő rész, csak azt nem értem, hogy hogy a fenébe szól bele az INT1, ha le van tiltva a globális INT???
JAni
Adott egy kis ASM betéttel működő program, aminél az ASM rutinban a szoros időzítések miatt nem jöhet megszakítás, máskor nincs baj. Már lecsupaszítottam mindent:
Kód: Egész kijelölése
Declare Sub Send
Dim Rgbbyte As Byte
Config Int1 = Falling 'INT1
Enable Int1
On Int1 Int1_isr
Enable Interrupts
Do
Waitms 1
For Rgbbyte= 0 To 255
Send
Send
Send
Next Rgbbyte
Loop
'---------------------------
Sub Send
$asm
CLI
Push r26
Push r27
push r17
push r16
push r0
Loadadr Rgbbyte , X 'RGB adatok
' stb...időzítések...
'-------------------------------------------------------------------------------
pop r0
pop r16
pop r17
pop r27
pop r26
SEI
$End Asm
End Sub
Int1_isr:
Return
End
Szimulátorban nézve a SEND alatt bejött INT1 utána nem csinál semmit, nem ugrik rá, tehát ott is van valami gond.
A SEND évek óta jól működő rész, csak azt nem értem, hogy hogy a fenébe szól bele az INT1, ha le van tiltva a globális INT???
JAni
Re: AVR kezdőnek
Már régen olvashattad a Bascom könyvet?
Idézet az interupt részből:
http://avr.tavir.hu/modules.php?name=Co ... age&pid=18
" Gifr = 64
Return
End
A megszakításrutinba egy sima várakozás kerül. A megszakításrutinban a megszakítások tiltva vannak, a program csak a nyomógomb első megnyomására reagál. Megváltoztatva a Debouncetime értékét kellően nagyra, a nyomógomb érzékelése csak egyszer történik meg.
A Bascom rendelkezik még a Debounce parancssal, melyet a megszakítás-rutinban is használhatunk.
Mi is az a Gifr?"
Idézet az interupt részből:
http://avr.tavir.hu/modules.php?name=Co ... age&pid=18
" Gifr = 64
Return
End
A megszakításrutinba egy sima várakozás kerül. A megszakításrutinban a megszakítások tiltva vannak, a program csak a nyomógomb első megnyomására reagál. Megváltoztatva a Debouncetime értékét kellően nagyra, a nyomógomb érzékelése csak egyszer történik meg.
A Bascom rendelkezik még a Debounce parancssal, melyet a megszakítás-rutinban is használhatunk.
Mi is az a Gifr?"
Re: AVR kezdőnek
Huhh, tényleg rémlik valami, de:
1. ez ASM bitbizergálás, nem értem, miért nem tiltódik a globális INT
2. Gifr: Error : 46 Line : 77 Assignment error, unknown variable (DIM) [GIFR: 0 64: 112] , in File : D:\ATT........
3. Emlékeim szerint ez arra volt jó, hogy futó megszakítást másik m eg tudjon szakítani, nekem meg az kellene, hogy a program apró részét senki ne tudja megszakítani, viszont tárolódnak a bejött INT-bitek, ha visszaengedélyezem, akkor végrehajtódnak.
De nem...megszakítja az INT1 a "lezárt" kis rutint. A CLI után elméletileg semmilyen INT nem érvényesülhet (-ne), nekem meg szépen beleköszön.
Ja, Mega328P-s kis Arduinos panelről van szó, már arra is gondoltam, hogy valaki (valahol?) mindig engedélyezi az INT-eket.
De gondolom a benne leledző Arduino bootloader kiszáll teljesen az upload után.
JAni
1. ez ASM bitbizergálás, nem értem, miért nem tiltódik a globális INT
2. Gifr: Error : 46 Line : 77 Assignment error, unknown variable (DIM) [GIFR: 0 64: 112] , in File : D:\ATT........
3. Emlékeim szerint ez arra volt jó, hogy futó megszakítást másik m eg tudjon szakítani, nekem meg az kellene, hogy a program apró részét senki ne tudja megszakítani, viszont tárolódnak a bejött INT-bitek, ha visszaengedélyezem, akkor végrehajtódnak.
De nem...megszakítja az INT1 a "lezárt" kis rutint. A CLI után elméletileg semmilyen INT nem érvényesülhet (-ne), nekem meg szépen beleköszön.
Ja, Mega328P-s kis Arduinos panelről van szó, már arra is gondoltam, hogy valaki (valahol?) mindig engedélyezi az INT-eket.
De gondolom a benne leledző Arduino bootloader kiszáll teljesen az upload után.
JAni
Re: AVR kezdőnek
Nézdmeg az adatlapot, mert itt másnak nevezik a regisztereket!
12.2.3 EIFR – External Interrupt Flag Register
...
12.2.5 PCIFR – Pin Change Interrupt Flag Register
...
szerintem a megszakítás a több send rutin között esikbe neked.
For Rgbbyte= 0 To 255
Send
???
Send
???
Send
Next Rgbbyte
12.2.3 EIFR – External Interrupt Flag Register
...
12.2.5 PCIFR – Pin Change Interrupt Flag Register
...
szerintem a megszakítás a több send rutin között esikbe neked.
For Rgbbyte= 0 To 255
Send
???
Send
???
Send
Next Rgbbyte
Re: AVR kezdőnek
Az nem baj, ha a SEND-ek között esik be (igazából ott van 20kB-nyi program), csak az a baj, hogy a SEND-en belül ne essen be. A kivülről jövő, igazából 2db INT (INT1 és Timer2) elég laza, szkópon nézve a fenntartott 50usec-ből 2-t vesz el, tehát annyira szépen mennie kellene, hogy ihaj. A regiszterneveket akkor áttúrom, köszi hogy figyelmeztettél rá, már sok minden annyira mechanikusan megy, hogy apróságokra nem figyelek...
(o.t.: Kis vacak Arduino panel az USB-n, már 1 órája vésem a prg-ot és bármit változtatok, semmi nem történik, látszatra minden jó, lefordul, áttölt stb. Akkor vettem észre, hogy a másik USB portra is egy rá volt dugva egy ugyan olyan Ard. kispanel és abba töltődtek a programok, persze az be volt esve a fiókba, ami be volt tolva) Szóval vagy többet vagy kevesebbet kellene szívni...
JAni
(o.t.: Kis vacak Arduino panel az USB-n, már 1 órája vésem a prg-ot és bármit változtatok, semmi nem történik, látszatra minden jó, lefordul, áttölt stb. Akkor vettem észre, hogy a másik USB portra is egy rá volt dugva egy ugyan olyan Ard. kispanel és abba töltődtek a programok, persze az be volt esve a fiókba, ami be volt tolva) Szóval vagy többet vagy kevesebbet kellene szívni...
JAni
Re: AVR kezdőnek
Bootloader:
- Bascom alatt a főprogram egyik első lépése a memória kipucolása illa DIM ek esetén a változó 0-val való feltöltése.
- Arduino alatt néha vannak érdekességek, ott a memóriapucolás elmarad. Aztán ha foglalsz arra a SRAM memóriacímre- van már kezdőértéke !
Bascom alatt is lehetséges: $ramclear fordítási direktívával. Ha cipőskanál fejlesztés: jól jön az induláskori programok kifaragásához....
- Bascom alatt a főprogram egyik első lépése a memória kipucolása illa DIM ek esetén a változó 0-val való feltöltése.
- Arduino alatt néha vannak érdekességek, ott a memóriapucolás elmarad. Aztán ha foglalsz arra a SRAM memóriacímre- van már kezdőértéke !
Bascom alatt is lehetséges: $ramclear fordítási direktívával. Ha cipőskanál fejlesztés: jól jön az induláskori programok kifaragásához....
-
- Bitmanipulátor
- Hozzászólások: 128
- Csatlakozott: 2015. december 8. kedd, 19:52
Re: AVR kezdőnek
Szia Robert!Robert írta:Ok. Küldj képernyőfotót. Nálad nem a Mega328 chip van kiválasztva...
Hanem valamelyik Tinychip (Tiny24? vagy Tiny26? Tiny2313?)
Megnéztem a BASCOM-ban. A chip leírásban (ATmega328 van iválasztva) szintén a 17-es pinhez kivezetéshez írja a PB3/MOSI funkciót. Ez a BASCOM help táblázatával van ellentmondásban. Feltöltöttem a képernyőfotót.
Nem akarok ezen sokat lovagolni, előbb-utóbb előveszem az Arduino-t és programot is írok, akkor biztosan kiderül, hogy mi a helyzet valójában. Éppen csak fennakadtam ezen az eltérésen! Úgy éreztem, már megint én nem látok valamit!
Bagi
Nincs meg a kellő jogosultságod a hozzászóláshoz csatolt állományok megtekintéséhez.