ATMega16, ATMega32 PC6 PC7 probléma
ATMega16, ATMega32 PC6 PC7 probléma
Sziasztok !!!
Hogyan kell az ATMega16 és ATMega32 chipen életre keltene a PC6 és PC7 kimenetelt?
FUSE HIGH-ben a JTAGEN disable (1-re programozva).
ASSR registerben AS2 0-ra programozva.
Ezek a dolgok nem segitetek.
Előre is kösz a segitséget...
zox1
Hogyan kell az ATMega16 és ATMega32 chipen életre keltene a PC6 és PC7 kimenetelt?
FUSE HIGH-ben a JTAGEN disable (1-re programozva).
ASSR registerben AS2 0-ra programozva.
Ezek a dolgok nem segitetek.
Előre is kösz a segitséget...
zox1
Mivel avrgcc hasznalok azért irom ide ezt a fajta példát
TCCR2 = 0;
ASSR &= ~(1<<AS2);
DDRC = 0xFF; (0b11111111) output-nak confolva
PORTC = 0x80; (ob10000000) csak a PC7-es legyen PULL UP (high)
Semi se történik, a PC7-es kimenet se HIGH se LOW
Ha:
PC7 és PC6 egyidőben álitom HIGH-re (0b11000000) akkor mint két kimenet HIGH, de ha csak a programba ez egyik kimenetet értékét megváltoztattom (pl. a PC6 - 0b10000000) akkor eltünik a PC7-tn is a HIGH, mindkettő kimeneten se HIHG se LOW.
Az egész csak enyi lene, a kimeneteket tesztelném (pl ha egy LED futófényt csinalnak)
int main(void)
{
ASSR = 0;
TCCR2 = 0;
DDRC = 0xFF;
PORTC = 0xFF;
while(1)
{
PORTC = 0x80;
}
return 0;
}
Előre is köszönöm a további segitséget
zox1
TCCR2 = 0;
ASSR &= ~(1<<AS2);
DDRC = 0xFF; (0b11111111) output-nak confolva
PORTC = 0x80; (ob10000000) csak a PC7-es legyen PULL UP (high)
Semi se történik, a PC7-es kimenet se HIGH se LOW
Ha:
PC7 és PC6 egyidőben álitom HIGH-re (0b11000000) akkor mint két kimenet HIGH, de ha csak a programba ez egyik kimenetet értékét megváltoztattom (pl. a PC6 - 0b10000000) akkor eltünik a PC7-tn is a HIGH, mindkettő kimeneten se HIHG se LOW.
Az egész csak enyi lene, a kimeneteket tesztelném (pl ha egy LED futófényt csinalnak)
int main(void)
{
ASSR = 0;
TCCR2 = 0;
DDRC = 0xFF;
PORTC = 0xFF;
while(1)
{
PORTC = 0x80;
}
return 0;
}
Előre is köszönöm a további segitséget
zox1
Hát bascommal nem probaltám meg de codevisionavr-el igen.A chip nincs elhalva, de a teszt progi is jo. A panel ahol a chip aljzat van ott volt rovidzarlat a két kivezetés közt (forrasztó ón megfolyás, szemmel alig látható).Robert írta:Próbáldd meg bascommal mit csinál. A C nekem bonyolult:)
Ezzel kizárod nem a chip van-e lehalva....
Köszi a helpeket és az ötletet.
zox1
Kezdő
Én kezdő vagyok, és most nagyon tanulni akarom 
Kérdésem az volna, hogy nekem miért dob hibát a következő:
$crystal = 1000000
$baud = 19200
$lib "mcsbyte.lbx"
$regfile = "m16def.dat"
Config Portc.6 = Output
Config Portc.7 = Output
Portc.6 = 1
Portc.7 = 1
Do
Portc = 250
Waitms 100
Portc = 0
Waitms 100
Loop
A hiba: Can't find HW-register DDR6
Kérdésem az volna, hogy nekem miért dob hibát a következő:
$crystal = 1000000
$baud = 19200
$lib "mcsbyte.lbx"
$regfile = "m16def.dat"
Config Portc.6 = Output
Config Portc.7 = Output
Portc.6 = 1
Portc.7 = 1
Do
Portc = 250
Waitms 100
Portc = 0
Waitms 100
Loop
A hiba: Can't find HW-register DDR6
Használj inkább:
Config Pinc.6 = Output
Config Pinc.7 = Output
Utasításokat
Biztos valamely régebbi Bascomot használod, mert az újban már javították ezt a hibát.
Szedki a : „$lib "mcsbyte.lbx"” sort!
Mert hibás az mcsbyte.lbx!
Nincsen olyan regiszter, amire hivatkozik (DDR6)
Nézd meg az adatlap 334.-oldalán levő regiszter összefoglaló táblázatot!
Valószínűleg (DDC6)-ot akartak írni?

Ha ez nem seggit, akkor esetleg szövegszerkesztővel nézd át a : m16def.dat
; PORTC
PC7 =7
PC6 =6
PC5 =5
PC4 =4
PC3 =3
PC2 =2
PC1 =1
PC0 =0
; DDRC
DDC7 =7
DDC6 =6
DDC5 =5
DDC4 =4
DDC3 =3
DDC2 =2
DDC1 =1
DDC0 =0
; PINC
PINC7 =7
PINC6 =6
PINC5 =5
PINC4 =4
PINC3 =3
PINC2 =2
PINC1 =1
PINC0 =0
Részét hátha hibás?

Config Pinc.6 = Output
Config Pinc.7 = Output
Utasításokat
Biztos valamely régebbi Bascomot használod, mert az újban már javították ezt a hibát.
Szedki a : „$lib "mcsbyte.lbx"” sort!
Mert hibás az mcsbyte.lbx!
Nincsen olyan regiszter, amire hivatkozik (DDR6)
Nézd meg az adatlap 334.-oldalán levő regiszter összefoglaló táblázatot!
Valószínűleg (DDC6)-ot akartak írni?
Ha ez nem seggit, akkor esetleg szövegszerkesztővel nézd át a : m16def.dat
; PORTC
PC7 =7
PC6 =6
PC5 =5
PC4 =4
PC3 =3
PC2 =2
PC1 =1
PC0 =0
; DDRC
DDC7 =7
DDC6 =6
DDC5 =5
DDC4 =4
DDC3 =3
DDC2 =2
DDC1 =1
DDC0 =0
; PINC
PINC7 =7
PINC6 =6
PINC5 =5
PINC4 =4
PINC3 =3
PINC2 =2
PINC1 =1
PINC0 =0
Részét hátha hibás?
Bakker! Kezdőként ilyet lefejelni (
)!
Köszönöm a segítséget!
- A DAT-ban nem volt hiba.
- az mcsbyte.lbx kivettem, de így sem volt jó
- az általad adott kód javította csak meg!
El tudod magyarázni - hogy értsem is, hogy a két utasítás között mi volt a külömbség?
Illetve egy kezdő kérdés:
Hogyan tudom megoldani, hogy a LED villogásom (
) ne az összes PortB-n jelenjen meg, hanem csak az egyik lábon pl. PB1-en (T1) jöjjön ki.
Ha jól értem az adatlapot tudom állítani egy bitsorozattal, hogy melyik hogyan...
Megyek olvasok, hátha megtudom mire megválaszolod és megerősíted vagy megcáfolod amit eddig megértettem
.
Köszönöm az eddigieket!
Köszönöm a segítséget!
- A DAT-ban nem volt hiba.
- az mcsbyte.lbx kivettem, de így sem volt jó
- az általad adott kód javította csak meg!
El tudod magyarázni - hogy értsem is, hogy a két utasítás között mi volt a külömbség?
Illetve egy kezdő kérdés:
Hogyan tudom megoldani, hogy a LED villogásom (
Ha jól értem az adatlapot tudom állítani egy bitsorozattal, hogy melyik hogyan...
Megyek olvasok, hátha megtudom mire megválaszolod és megerősíted vagy megcáfolod amit eddig megértettem
Köszönöm az eddigieket!
Tényleg régi BASCom-ot haszsnáltam.
Végül a régin jól ment.
Aztán LCD-t próbálgattam -simulátoron.
Az alábbi kódot lefuttattam, jól ment, de a kijelző a végén két hatost dobott.
Letöltöttem a legújabb demót.
Ott is le akarom futtatni, de státusbáron ugyan futást ír, de a szimulátor nem mutat semmit. Sőt futás alatt látszik, hogy I értéke nem változik!
Mit rontok el? (Vista alatt futtatom, de a régit is ott futtattam).
Dim I As Integer
Cursor Off
I = 0
Do
Cls
Set Portd.1
Waitms 50
Reset Portd.1
Waitms 50
'----
Set Portd.2
Waitms 50
Reset Portd.2
Waitms 50
'----
Set Portd.3
Waitms 50
Reset Portd.3
Waitms 50
I = I + 1
Cls
Locate 1 , 6
Lcd I
Loop Until I > 5
Locate 2 , 6
Cls
Lcd I
[/img]
Végül a régin jól ment.
Aztán LCD-t próbálgattam -simulátoron.
Az alábbi kódot lefuttattam, jól ment, de a kijelző a végén két hatost dobott.
Letöltöttem a legújabb demót.
Ott is le akarom futtatni, de státusbáron ugyan futást ír, de a szimulátor nem mutat semmit. Sőt futás alatt látszik, hogy I értéke nem változik!
Mit rontok el? (Vista alatt futtatom, de a régit is ott futtattam).
Dim I As Integer
Cursor Off
I = 0
Do
Cls
Set Portd.1
Waitms 50
Reset Portd.1
Waitms 50
'----
Set Portd.2
Waitms 50
Reset Portd.2
Waitms 50
'----
Set Portd.3
Waitms 50
Reset Portd.3
Waitms 50
I = I + 1
Cls
Locate 1 , 6
Lcd I
Loop Until I > 5
Locate 2 , 6
Cls
Lcd I
kapu48 írta:Használj inkább:
Config Pinc.6 = Output
Config Pinc.7 = Output
Utasításokat
![]()
Biztos valamely régebbi Bascomot használod, mert az újban már javították ezt a hibát.
Szedki a : „$lib "mcsbyte.lbx"” sort!
Mert hibás az mcsbyte.lbx!
Nincsen olyan regiszter, amire hivatkozik (DDR6)
Nézd meg az adatlap 334.-oldalán levő regiszter összefoglaló táblázatot!
Valószínűleg (DDC6)-ot akartak írni?
Ha ez nem seggit, akkor esetleg szövegszerkesztővel nézd át a : m16def.dat
; PORTC
PC7 =7
PC6 =6
PC5 =5
PC4 =4
PC3 =3
PC2 =2
PC1 =1
PC0 =0
; DDRC
DDC7 =7
DDC6 =6
DDC5 =5
DDC4 =4
DDC3 =3
DDC2 =2
DDC1 =1
DDC0 =0
; PINC
PINC7 =7
PINC6 =6
PINC5 =5
PINC4 =4
PINC3 =3
PINC2 =2
PINC1 =1
PINC0 =0
Részét hátha hibás?
1. Ha LCD-re akarsz írni, akkor először Configurálni kel az LCD-t!
2. Kel a program végére : End 'end program
3. Remélem ezt a sort, már kiszedted?: $lib "mcsbyte.lbx"
4. Alapból a portok bemenetek, kimenetnek configolni kel.
5. Ha szimulátorban futtatod kel a program elejére ez a sor: $sim
Én ugyan Windows 7 alatt futatom, itt jól mükszik.

2. Kel a program végére : End 'end program
3. Remélem ezt a sort, már kiszedted?: $lib "mcsbyte.lbx"
4. Alapból a portok bemenetek, kimenetnek configolni kel.
5. Ha szimulátorban futtatod kel a program elejére ez a sor: $sim
Én ugyan Windows 7 alatt futatom, itt jól mükszik.
Köszönöm!
nem gondoltam, hogy ami régebbi BASCOMba ment, az az újabba nem menne esetleg. (Igaz ott is akadt vele gond, dupla kiírás a végén...).
Amit írtál megint segített!
sikerült a friss bascomban a helloworld - kisöröm is öröm
nem gondoltam, hogy ami régebbi BASCOMba ment, az az újabba nem menne esetleg. (Igaz ott is akadt vele gond, dupla kiírás a végén...).
Amit írtál megint segített!
sikerült a friss bascomban a helloworld - kisöröm is öröm
Kód: Egész kijelölése
$regfile = "m16def.dat"
$crystal = 4000000
$baud = 19200
$sim
Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Portc.7 , Rs = Portc.6
Config Lcd = 16 * 2
Cls
Lcd "Hello world."
Wait 1
End
kapu48 írta:1. Ha LCD-re akarsz írni, akkor először Configurálni kel az LCD-t!
2. Kel a program végére : End 'end program
3. Remélem ezt a sort, már kiszedted?: $lib "mcsbyte.lbx"
4. Alapból a portok bemenetek, kimenetnek configolni kel.
5. Ha szimulátorban futtatod kel a program elejére ez a sor: $sim
Én ugyan Windows 7 alatt futatom, itt jól mükszik.
